本來打算暑假將自己每天學到的東西寫下來,每天做成一篇文章的,結(jié)果現(xiàn)在每周能產(chǎn)出一篇文章就不錯了。。?!狙诿妗?。。今天學了點npm命令行操作,就寫一下
1.簡介
npm有兩層含義。一層含義是Node的開放式模塊登記和管理系統(tǒng),網(wǎng)址為npmjs.org。另一層含義是Node默認的模塊管理器,是一個命令行下的軟件,用來安裝和管理Node模塊。npm不需要單獨安裝。在安裝Node的時候,會連帶一起安裝npm。但是,Node附帶的npm可能不是最新版本,最好用下面的命令,更新到最新版本:
$ npm install npm@latest -g
查看版本信息:
$ npm -v
2.npm init
用來初始化創(chuàng)建一個package.json文件
# -y表示跳過提問階段,直接生成一個package.json文件
$ npm init -y
3.npm info
用來查看每個模板的信息
# 查看babel模板信息
$ npm info babel-cli
4.4、npm search
用來搜索npm倉庫
$ npm search <搜索詞>
5、npm list
以樹形結(jié)構列出當前項目安裝的所有模板,以及它們依賴的模板
$ npm list
# 列出全局安裝的模板
$ npm list -global
6、npm install
node模板通過這個命令來安裝,有全局安裝:指的是將一個模板安裝到系統(tǒng)目錄中,各個項目都可以調(diào)用;有本地安裝:指的是將一個模板下載到當前項目的node_modules子目錄中,然后只有在項目目錄中,才能調(diào)用這個模板。
# 本地安裝
$ npm install <package name>
# 全局安裝
$ npm install -g <package name>
# 也可以安裝github代碼庫地址:
$ npm install git://github.com/package/.....
安裝github代碼庫之前,npm install會先檢查,node_modules目錄之中是否已經(jīng)存在指定模板。如果存在,就不會再重新安裝了。
7、-save和-save-dev
-save:模板名將被添加到dependencies(dependencies字段指定了項目運行所依賴的模板),可以簡化為-S
-save-dev:模板名將被添加到devDependencies(devDependencies指定了項目開發(fā)所需要的模板),可以簡化為-D
$ npm install react --save
$ npm install react -S
$ npm install react --save-dev
$ npm install react -D
npm install默認會安裝dependencies字段和DevDependencies字段中的所有版本,如果使用--production參數(shù),則只安裝dependencies字段中的模板
$ npm install --production
ps:
也就是說,如果你在package.json的dependencies或者DevDependencies字段里將要安裝的模板名及版本寫入進去了,那么當你直接敲npm install時,那么就會安裝相應的模板。
如果你是用來-save和-save-dev參數(shù),那么就會安裝相應的模板,然后將參數(shù)寫入到package.json的dependencies字段或DevDependencies字段中。
8、npm update,npm uninstall
更新和卸載
$ npm update <package name>
$ npm uninstall <package name>
9、npm run
npm不僅可以用于模塊管理,還可以用于執(zhí)行腳本。package.json文件里有一個scripts字段,可以用于指定腳本命令,供npm直接調(diào)用。
比如,現(xiàn)在用browserify打包一個reactJs文件,scripts字段如下:
{
"scripts":{
"bundle":"browserify js\build\app.js -o bundle.js"
}
}
現(xiàn)在輸入npm run bundle就會打包這個文件
npm run命令會自動在環(huán)境變量$PATH添加node_modules/.bin目錄,所以scripts字段里面調(diào)用命令時不用加上路徑,這就避免了全局安裝NPM模塊。
npm run如果不加任何參數(shù),直接運行,會列出package.json里面所有可以執(zhí)行的腳本命令
舉例來說,現(xiàn)在安裝一個react-dom模板:
$ npm install react-dom --save-dev
運行上面的命令以后,會產(chǎn)生兩個結(jié)果。首先,react-dom被安裝到當前目錄的node_modules子目錄;其次,node_modules/.bin目錄會生成一個符號鏈接node_modules/.bin/eslint,指向ESLint模塊的可執(zhí)行腳本。
然后,你就可以在package.json的script屬性里面,不帶路徑的引用react-dom這個腳本。