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
相关文章
相关标签/搜索