[英]cross-env not populating NODE_ENV
I'm trying to use cross-env package to have two separate script configurations for production and for development.. but cross-env is not populating the values我正在尝试使用 cross-env package 为生产和开发提供两个单独的脚本配置。但是 cross-env 没有填充值
config.js配置.js
const dotenv = require('dotenv');
const path = require('path');
// this is used for resolving the correct .env file
dotenv.config({
path : path.resolve(__dirname, process.env.NODE_ENV + '.env')
});
module.exports = {
NODE_ENV: process.env.NODE_ENV,
HOST: process.env.HOST,
LISTENPORT: process.env.LISTENPORT,
DBHOST: process.env.DBHOST
}
package.json package.json
"scripts": {
"prod": "cross-env NODE_ENV=production&& node index.js",
"dev": "cross-env NODE_ENV=development&& node index.js"
}
index.js索引.js
const config = require('./config.js');
expressApp.listen(config.LISTENPORT, () => {
console.log(config);
});
It doesn't matter if I start the server with npm run dev
or npm run prod
, in either case the output to console from index.js is:如果我使用
npm run dev
或npm run prod
启动服务器,无论哪种情况,从 index.js 到控制台的 output 都是:
> cross-env NODE_ENV=development&& node index.js
{
NODE_ENV: undefined,
HOST: undefined,
LISTENPORT: undefined,
DBHOST: undefined
}
Not sure what I'm doing wrong.不知道我做错了什么。
I changed cross-env
to export
and it seems to work.我将
cross-env
更改为export
,它似乎可以工作。 Probably wouldn't work on windows but at least works on linux/macos.可能不适用于 windows,但至少适用于 linux/macos。
"scripts": {
"prod": "export NODE_ENV=production&& node index.js",
"dev": "export NODE_ENV=development&& node index.js"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.