npm- 開發與生產環境

npm

npm 是javascript 包管理,也是世界上最大的軟件記錄。javascript

使用npm 能夠安裝,分享和貢獻本身的代碼,管理項目中的依賴包,html

package.json

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

npm scripts

//在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

dependencies、devDependencies

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
相關文章
相關標籤/搜索