cross-env not populating NODE_ENV



我试图使用跨环境包有两个独立的脚本配置用于生产和开发..但是cross-env没有填充

值config.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

"scripts": {
"prod": "cross-env NODE_ENV=production&& node index.js",
"dev": "cross-env NODE_ENV=development&& node index.js"
}

index.js

const config = require('./config.js');
expressApp.listen(config.LISTENPORT, () => {
console.log(config);
});

如果我用npm run devnpm run prod启动服务器并不重要,在任何情况下,从index.js输出到控制台是:

> cross-env NODE_ENV=development&& node index.js
{
NODE_ENV: undefined,
HOST: undefined,
LISTENPORT: undefined,
DBHOST: undefined
}

我不知道我做错了什么。

我将cross-env改为export,似乎可以工作。可能无法在windows上运行,但至少可以在linux/macos上运行。

"scripts": {
"prod": "export NODE_ENV=production&& node index.js",
"dev": "export NODE_ENV=development&& node index.js"
}

最新更新