npm- 开发与生产环境

npm

npm 是javascript 包管理,也是世界上最大的软件记录。

使用npm 可以安装,分享和贡献自己的代码,管理项目中的依赖包,

package.json

npm的包依赖配置json文件,开发时可以在里面记录所有依赖包,也可以配置一些简单的npm 脚本,

{
  "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 三类属性。

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 
 

原理:

npm run 新建一个shell,并且把当前目录的 node——modules/.bin
子目录加入PATH变量,执行结束后,再将PATH 变量恢复原样

npm scripts 详细解释

dependencies、devDependencies

  npm install Xxx --save 安装模块,并把模块名和版本号添加到dependencies 部分。
  npm install xxx --save-dev 安装模块,把模块名和版本号写在devdependencies部分。

区别就是,在生产环境,使用npm install --production安装 dependencies 部分的模块,
在开发环境,npm i ,安装所有devDependencies 和 dependencies里面的模块

所以,在生产环境,就不需要安装 gulp ,webpack 这样的模块,可以通过这种方法区分

几种简写指令:

   -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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值