npm 是javascript 包管理,也是世界上最大的軟件記錄。javascript
使用npm 能夠安裝,分享和貢獻本身的代碼,管理項目中的依賴包,html
npm的包依賴配置json文件,開發時能夠在裏面記錄全部依賴包,也能夠配置一些簡單的npm 腳本,java
{ "name": "xxxxxx", "version": "11111", "description": "xxxxxxx", "author": xxxxx", "private": true, "scripts": { "dev": "node server.js", "start": "node server.js", "build": "node build.js " }, "dependencies": { }, "devDependencies": { "webpack": "^2.6.1", } }
上面是一個簡單的package.json 文件的,裏面有一些基本的配置項,主要有做用的是 scripts
,dependencies
,devDependencies
三類屬性。node
//在scripts 字段中定義一些簡單的腳本,好比上面定義了三個腳本,執行時能夠這樣: npm run dev 至關於執行 node server.js // 查看當前全部Npm腳本命令 npm run
*幾種常見的簡寫形式* npm start 至關於 npm run start npm stop 至關於 npm run stop npm test 至關於 npm run test npm restart 至關於 npm run stop && npm run restart && npm run start
原理:webpack
npm run 新建一個shell,而且把當前目錄的 node——modules/.bin
子目錄加入PATH變量,執行結束後,再將PATH 變量恢復原樣web
npm scripts 詳細解釋shell
npm install Xxx --save 安裝模塊,並把模塊名和版本號添加到dependencies 部分。 npm install xxx --save-dev 安裝模塊,把模塊名和版本號寫在devdependencies部分。
區別就是,在生產環境,使用npm install --production
安裝 dependencies 部分的模塊,
在開發環境,npm i ,安裝全部devDependencies 和 dependencies裏面的模塊npm
因此,在生產環境,就不須要安裝 gulp ,webpack 這樣的模塊,能夠經過這種方法區分json
幾種簡寫指令:gulp
-P 至關於 --save-prod, 添加dependencies 裏面全部的包。在 -D -O 不存在時,-P 就是默認值 -S 至關於 --save; 添加dependencies 裏面全部的包。 -D 至關於 --save-dev; 添加devDependencies 裏面全部的包, -O 至關於 --save-optional, 添加在 optionalDependencies 裏面的包, --no-save: 阻止保存記錄在dependencies 中,
合理使用這兩個依賴記錄,能夠保證減小在生產環境下,打包後體積大小。
上門寫到 使用npm run
等命令能夠執行相應的腳本,一樣也能夠在其中進行參數傳遞,跟在Shell中經過process.env屬性來傳遞參數進行參數的傳遞的方法基本同樣。
一般的方法是,在環境變量NODE_ENV中傳遞參數,使用它來肯定當前所處的開發階段,生產階段設爲production,開發階段設爲develop 或者staging,而後在腳本中讀出 process.env.NODE_ENV便可
NODE_ENV = production npm run dev