Node.js打包管理工具NPM用法
一、NPM使用介紹
NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問(wèn)題,常見(jiàn)的使用場(chǎng)景有以下幾種:
(1)允許用戶(hù)從NPM服務(wù)器下載別人編寫(xiě)的第三方包到本地使用。
(2)允許用戶(hù)從NPM服務(wù)器下載并安裝別人編寫(xiě)的命令行程序到本地使用。
(3)允許用戶(hù)將自己編寫(xiě)的包或命令行程序上傳到NPM服務(wù)器供別人使用。
由于新版的nodejs已經(jīng)集成了npm,所以之前npm也一并安裝好了。同樣可以通過(guò)輸入 "npm -v" 來(lái)測(cè)試是否成功安裝。命令如下,出現(xiàn)版本提示表示安裝成功:
npm -v
如果你安裝的是舊版本的 npm,可以很容易得通過(guò) npm 命令來(lái)升級(jí),命令如下:
npm install npm -g
或淘寶鏡像
npm install -g cnpm --registry=https://registry.npm.taobao.org
二、NPM全局安裝和本地安裝
本地安裝:
? 【1】將安裝包放在 ./node_modules 下(運(yùn)行 npm 命令時(shí)所在的目錄),如果沒(méi)有 node_modules 目錄,會(huì)在當(dāng)前執(zhí)行 npm 命令的目錄下生成 node_modules 目錄。
? 【2】可以通過(guò) require() 來(lái)引入本地安裝的包。
全局安裝:
? 【1】將安裝包放在 /usr/local 下或者你 node 的安裝目錄。
? 【2】可以直接在命令行里使用。
本地安裝與全局安裝命令:
npm install ModuleName # 本地安裝 npm install ModuleName -g # 全局安裝
三、npm安裝package.json
在nodejs安裝目錄下已經(jīng)存在package.json文件,所以不需要進(jìn)行全局安裝package.json,我們下面介紹本地安裝package.json文件。
package.json是一個(gè)描述和管理的文件,通過(guò)如下命令進(jìn)行安裝:
npm init
命令執(zhí)行后會(huì)提示輸入信息,全部使用默認(rèn)值直接回車(chē),最后提示 Is this OK(yes) ,此時(shí)輸入yes即可。
安裝成功后會(huì)創(chuàng)建package.json文件,文件屬性?xún)?nèi)容說(shuō)明如下:
name - 包名。 version - 包的版本號(hào)。 description - 包的描述。 homepage - 包的官網(wǎng) url 。 author - 包的作者姓名。 contributors - 包的其他貢獻(xiàn)者姓名。 dependencies - 依賴(lài)包列表。如果依賴(lài)包沒(méi)有安裝,npm 會(huì)自動(dòng)將依賴(lài)包安裝在 node_module 目錄下。 repository - 包代碼存放的地方的類(lèi)型,可以是 git 或 svn,git 可在 Github 上。 main - main 字段指定了程序的主入口文件,require('moduleName') 就會(huì)加載這個(gè)文件。這個(gè)字段的默認(rèn)值是模塊根目錄下面的 index.js。 keywords - 關(guān)鍵字
四、npm安裝模塊
npm本地安裝模塊,需要先安裝package.json。
以web框架模塊 express為例,進(jìn)行express模塊的安裝,命令如下:
npm install express # 本地安裝 npm install express -g # 全局安裝
如果出現(xiàn)以下錯(cuò)誤:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解決辦法為:
$ npm config set proxy null
五、模塊的其他操作
在操作命令中,最后加上 -g 代表進(jìn)行全局操作。
查看模塊安裝信息:
npm list
查看某個(gè)模塊的版本號(hào):
npm list express
更新模塊:
npm update express
搜索模塊:
npm search express
卸載模塊:
npm uninstall express
卸載后,你可以到 /node_modules/ 目錄下查看包是否還存在,或者使用以下命令查看:
npm ls
六、版本號(hào)
使用NPM下載和發(fā)布代碼時(shí)都會(huì)接觸到版本號(hào)。NPM使用語(yǔ)義版本號(hào)來(lái)管理代碼,這里簡(jiǎn)單介紹一下。
語(yǔ)義版本號(hào)分為X.Y.Z三位,分別代表主版本號(hào)、次版本號(hào)和補(bǔ)丁版本號(hào)。當(dāng)代碼變更時(shí),版本號(hào)按以下原則更新。
(1)如果只是修復(fù)bug,需要更新Z位。
(2)如果是新增了功能,但是向下兼容,需要更新Y位。
(3)如果有大變動(dòng),向下不兼容,需要更新X位。
版本號(hào)有了這個(gè)保證后,在申明第三方包依賴(lài)時(shí),除了可依賴(lài)于一個(gè)固定版本號(hào)外,還可依賴(lài)于某個(gè)范圍的版本號(hào)。例如"argv": "0.0.x"表示依賴(lài)于0.0.x系列的最
新版argv。
NPM支持的所有版本號(hào)范圍指定方式可以查看官方文檔。
七、npm常用命令
除了本章介紹的部分外,NPM還提供了很多功能,package.json里也有很多其它有用的字段。
除了可以在npmjs.org/doc/查看官方文檔外,這里再介紹一些NPM常用命令。
NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。
使用npm help <command>可查看某條命令的詳細(xì)幫助,例如npm help install。 在package.json所在目錄下使用npm install . -g可先在本地安裝當(dāng)前命令行程序,可用于發(fā)布前的本地測(cè)試。 使用npm update <package>可以把當(dāng)前目錄下node_modules子目錄里邊的對(duì)應(yīng)模塊更新至最新版本。 使用npm update <package> -g可以把全局安裝的對(duì)應(yīng)命令行程序更新至最新版。 使用npm cache clear可以清空NPM本地緩存,用于對(duì)付使用相同版本號(hào)發(fā)布新版本代碼的人。 使用npm unpublish <package>@<version>可以撤銷(xiāo)發(fā)布自己發(fā)布過(guò)的某個(gè)版本代碼。
八、使用淘寶的npm鏡像
大家都知道國(guó)內(nèi)直接使用 npm 的官方鏡像是非常慢的,這里推薦使用淘寶 NPM 鏡像。
淘寶 NPM 鏡像是一個(gè)完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務(wù)同步。
你可以使用淘寶定制的 cnpm (gzip 壓縮支持) 命令行工具代替默認(rèn)的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
這樣就可以使用 cnpm 命令來(lái)安裝模塊了:
cnpm install [name]
九、安裝報(bào)錯(cuò)
如果你遇到了使用 npm 安 裝node_modules 總是提示報(bào)錯(cuò):報(bào)錯(cuò): npm resource busy or locked.....。
可以先刪除以前安裝的 node_modules :
npm cache clean npm install
到此這篇關(guān)于Node.js打包管理工具NPM用法的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
node+express+ejs使用模版引擎做的一個(gè)示例demo
本篇文章主要介紹了node+express+ejs使用模版引擎做的一個(gè)示例demo,具有一定參考價(jià)值,有興趣的小伙伴可以了解一下2017-09-09解決Node.js使用MySQL出現(xiàn)connect ECONNREFUSED 127.0.0.1:3306的問(wèn)題
這篇文章主要介紹了解決Node.js使用MySQL出現(xiàn)connect ECONNREFUSED 127.0.0.1:3306報(bào)錯(cuò)的相關(guān)資料,文中將問(wèn)題描述的很清楚,解決的方法也介紹的很完整,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-03-03node.JS md5加密中文與php結(jié)果不一致的解決方法
本篇文章主要介紹了node.JS md5加密中文與php結(jié)果不一致的解決方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05Mac下安裝node.js及環(huán)境配置全過(guò)程
這篇文章主要介紹了Mac下安裝node.js及環(huán)境配置全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Node.js+Express+MySql實(shí)現(xiàn)用戶(hù)登錄注冊(cè)功能
這篇文章主要為大家詳細(xì)介紹了Node.js+Express+MySql實(shí)現(xiàn)用戶(hù)登錄注冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Nodejs實(shí)現(xiàn)爬蟲(chóng)抓取數(shù)據(jù)實(shí)例解析
這篇文章主要介紹了Nodejs實(shí)現(xiàn)爬蟲(chóng)抓取數(shù)據(jù)實(shí)例解析,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07