cross-env 不起作用怎么办?

package.json里面scripts语句如下

"test": "cross-env NODE_ENV=dev && node test.js"

test.js 只有一句 console.log(process.env.NODE_ENV)

但结果显示undefined

为什么?

阅读 17.4k
3 个回答

自问自答,原因是中间不能有&&&&这样会划分出前后两个环境,导致后一个语句的环境没有NODE_ENV

NODE_ENV脚本设置无效

场景如下:

//脚本
//cross-env模块下
cross-env NODE_ENV = dev && node app.js

//windows下
set NODE_ENV = dev && node app.js

问题分析:
问题出现在 '&&' 处

  • cross-env模块下,它划分出前后两个环境,后一句的环境没有设置到NODE_ENV变量,值为undefined;
//纠正,去掉&&
cross-env NODE_ENV = dev node app.js
  • windows下,NODE_ENV被设置成 'dev ',末尾带有一个空格
//纠正,去掉&&前的空格,不可以直接去掉&&
//因为去掉后,这句脚本就不能正确的被切分为两句来执行了,而直接是赋dev  node app.js给NODE_ENV
set NODE_ENV = dev&& node app.js

NODE_ENV=dev这里不能有空格
"test": "cross-env NODE_ENV=dev&& node test.js"

推荐问题
宣传栏