在package.json里面设置环境变量的方法
我们一般使用cross-env来实现
记得 npm install cross-env --save-dev

{
  "scripts": {
    "dev": "cross-env CURRENT_ENV=development webpack-dev-server --inline --progress",
    "build": "cross-env CURRENT_ENV=production node build/build.js 
  }
}

执行npm run dev即可,在js文件里面就可以通过process.env.CURRENT_ENV得到值development
执行scripts里面命令实际相当于在执行

node_modules/.bin/cross-env CURRENT_ENV=development webpack-dev-server

有点懵?
我们一般是安装开发依赖时是执行npm install xxx --save-dev的,这时在node_modules文件里面会有个.bin文件夹,有的文件系统可能是隐藏文件夹,.bin文件夹里面的文件夹一般是可以执行文件

上面是针对的开发环境,设置生产环境同样适用,并且生产环境还可以使用process.env.argv,它是一个数组,里面存放node运行的参数。
上面的package.json里面有npm run build命令,我们可以在node build/build.js后面加上参数,比如

{
  "build": "cross-env CURRENT_ENV=production node build/build.js testArg"
}

这个参数testArg就会在process.env.argv里面了,需要注意的是,这个process.env.argv并不是只有两个参数build/build.jstestArg,该数组里面第一个是当前node的目录,比如/Users/shadow/.nvm/versions/node/v8.11.4/bin/node,所以testArg的index是数组里面的第三个。使用时最好把process.env.argv打印下,确定好自己设置的参数的位置再使用。

分类: Javascript

发表评论

电子邮件地址不会被公开。 必填项已用*标注