Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js-Node_ENV未定义_Node.js_Webpack - Fatal编程技术网

Node.js-Node_ENV未定义

Node.js-Node_ENV未定义,node.js,webpack,Node.js,Webpack,我正在尝试为我的项目设置环境变量NODE_ENV 我正在使用Windows,并已在系统设置中设置了节点_ENV-这已通过键入set并在输出中标识下一行来验证 节点_ENV=生产 我似乎无法在webpack中设置变量 将下面的代码添加到我的项目(index.js)时,它只会注销未定义的 我的网页包配置: const path = require('path'); const webpack = require('webpack'); const ExtractTextPlugin = requir

我正在尝试为我的项目设置环境变量NODE_ENV

我正在使用Windows,并已在系统设置中设置了节点_ENV-这已通过键入set并在输出中标识下一行来验证

节点_ENV=生产

我似乎无法在webpack中设置变量

将下面的代码添加到我的项目(index.js)时,它只会注销未定义的

我的网页包配置:

const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')

process.env.NODE_ENV = process.env.NODE_ENV || 'development'

if (process.env.NODE_ENV === 'test') {
  require('dotenv').config({ path: '.env.test' })
} else if (process.env.NODE_ENV === 'development') {
  require('dotenv').config({ path: '.env.development' })
} else if (process.env.NODE_ENV === 'production') {
  require('dotenv').config({ path: '.env.production' })
} else {
  require('dotenv').config({ path: '.env.development' })
}

module.exports = (env) => {
  const isProduction = env === 'production';
  ...
    plugins: [
      CSSExtract,
      new UglifyJSPlugin(),
      new webpack.DefinePlugin({
        'process.env.FIREBASE_API_KEY': JSON.stringify(process.env.FIREBASE_API_KEY),
        'process.env.FIREBASE_AUTH_DOMAIN': JSON.stringify(process.env.FIREBASE_AUTH_DOMAIN),
        'process.env.FIREBASE_DATABASE_URL': JSON.stringify(process.env.FIREBASE_DATABASE_URL),
        ...
      }),
    devtool: isProduction ? 'source-map' : 'inline-source-map',
    ...
我有,但仍然无法设置env变量


我哪里出错了?

我通过使用包成功地设置了NODE_ENV! 如果您在Windows上开发node.js,这将非常有用。Linux/Mac用户不会有这个问题

要设置环境变量,只需键入

交叉环境节点_env=production[此处是您的推荐]

例如:

交叉环境节点_env=生产网页包--环境生产


cmd
中可以访问它吗?它有点复杂,但您可以尝试使用,这样您就可以轻松地设置环境变量,如
NODE\u ENV=development NODE foo.js
。它还解决了与Windows的许多其他兼容性问题。Hi@pradoshnair-是的,通过在VS代码(我的代码编辑器)中键入“set”Hi@SethHolladay,可以通过命令提示符和命令提示符访问该变量-我经常使用WSL,但对我来说,它与VS代码的集成性很差。我会尝试,如果在网页包生产包装更好地工作,我WSL。但是,它不能解决编码时切换环境的问题:/@Kermit他们最近发布了WSL2,VS代码经常收到更新。也许值得时不时地查看一下。
const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')

process.env.NODE_ENV = process.env.NODE_ENV || 'development'

if (process.env.NODE_ENV === 'test') {
  require('dotenv').config({ path: '.env.test' })
} else if (process.env.NODE_ENV === 'development') {
  require('dotenv').config({ path: '.env.development' })
} else if (process.env.NODE_ENV === 'production') {
  require('dotenv').config({ path: '.env.production' })
} else {
  require('dotenv').config({ path: '.env.development' })
}

module.exports = (env) => {
  const isProduction = env === 'production';
  ...
    plugins: [
      CSSExtract,
      new UglifyJSPlugin(),
      new webpack.DefinePlugin({
        'process.env.FIREBASE_API_KEY': JSON.stringify(process.env.FIREBASE_API_KEY),
        'process.env.FIREBASE_AUTH_DOMAIN': JSON.stringify(process.env.FIREBASE_AUTH_DOMAIN),
        'process.env.FIREBASE_DATABASE_URL': JSON.stringify(process.env.FIREBASE_DATABASE_URL),
        ...
      }),
    devtool: isProduction ? 'source-map' : 'inline-source-map',
    ...