繁体   English   中英

跨环境不填充 NODE_ENV

[英]cross-env not populating NODE_ENV

我正在尝试使用 cross-env package 为生产和开发提供两个单独的脚本配置。但是 cross-env 没有填充值

配置.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"
  }

索引.js

const config = require('./config.js');

    expressApp.listen(config.LISTENPORT, () => {
      console.log(config);
    });

如果我使用npm run devnpm run prod启动服务器,无论哪种情况,从 index.js 到控制台的 output 都是:

> 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"
      }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM