简体   繁体   English

跨环境不填充 NODE_ENV

[英]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 devnpm 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.

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