cross-env跨平台的设置和使用环境变量


在开发中,常见使用process.env.NODE_ENV来判断当前为生产环境还是开发环境,值为develop时为开发环境,为production时为生产环境。

其实这里的NODE_ENV和它的值是可以随意命名的,因为它并不是process.env的原生属性,是人为添加的,因此直接调用无法读取,需要手动添加到process.env上。

手动添加NODE_ENV

在windows上添加时,需要在启动项目命令前加一句set NODE_ENV=develop,如下

1
set NODE_ENV=develop node index.js

但这仅仅是处在windows平台上,在其他平台上设置方法是不一样的。这时候就要用到本次的主角cross-env了。

使用cross-env优化

在node启动项目时,在命令前面加一句NODE_ENV=develop即可生效,如下示例

1
NODE_ENV=develop node index.js

通常使用场景是直接将命令添加到package.jsonscript上,如下

1
2
3
{
"dev": "cross-env NODE_ENV=develop node index.js"
}

这样直接通过num run dev启动项目,即可获得NODE_ENV的值,为develop