1. npm init
初始化一個空項目,根據(jù)提示在命令行中輸入項目信息,這些信息都會在package.json文件中體現(xiàn)
2. npm install
安裝包,安裝依賴,我也經(jīng)常忘記這個命令的具體合適,可以用help產(chǎn)看一下具體情況

由命令幫助可知,npm install 可以用 npm i 來替代
該命令可以安裝在npm上發(fā)布的包,也可以按照本地文件、壓縮包、git和github的項目作為依賴到你的項目中
3. npm shrinkwrap
目前還沒有用到
前面說過要鎖定依賴的版本,但這并不能完全防止意外情況的發(fā)生,因為鎖定的只是最外一層的依賴,而里層依賴的模塊的 package.json 有可能寫的是 "mongoose": "*"。為了徹底鎖定依賴的版本,讓你的應(yīng)用在任何機器上安裝的都是同樣版本的模塊(不管嵌套多少層),通過運行 npm shrinkwrap,會在當(dāng)前目錄下產(chǎn)生一個 npm-shrinkwrap.json,里面包含了通過 node_modules 計算出的模塊的依賴樹及版本。上面的截圖也顯示:只要目錄下有 npm-shrinkwrap.json 則運行 npm install 的時候會優(yōu)先使用 npm-shrinkwrap.json 進行安裝,沒有則使用 package.json 進行安裝。
詳細了解:
(1)https://docs.npmjs.com/cli/shrinkwrap
(2)http://tech.meituan.com/npm-shrinkwrap.html
注意: 如果 node_modules 下存在某個模塊(如直接通過 npm install xxx 安裝的)而 package.json 中沒有,運行 npm shrinkwrap 則會報錯。另外,npm shrinkwrap 只會生成 dependencies 的依賴,不會生成 devDependencies 的。
4. npm scripts
npm 提供了靈活而強大的 scripts 功能,具體見官方介紹 https://docs.npmjs.com/misc/scripts
npm 的 scripts 有一些內(nèi)置的縮寫命令,如常用的:
?* npm start 等價于 npm run start
?* npm test 等價于 npm run test