首页 > 解决方案 > Webpack NODE_ENV 是未定义的,即使它是在脚本中声明的

问题描述

我的 package.json 脚本有问题,不知何故没有将我的节点环境设置为开发或生产,我总是不确定,我的 webpack 在两个脚本中都能正确编译。我在控制台记录 process.env.NODE_ENV 无济于事,似乎进程属性在 env 下没有 NODE_ENV 变量,我做错了什么?

谢谢

webpack.config:

const path = require('path')
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const Dotenv = require('dotenv-webpack')

console.log(process.env.NODE_ENV)

const env = process.env.NODE_ENV === 'production'
  ? new webpack.EnvironmentPlugin({ ...process.env })
  : new Dotenv()


module.exports = () => {
  const publicPath = env.NODE_ENV === 'local' ? {
    publicPath: '/'
  } : {}

  return {
    entry: './src/index.js',
    output: {
      filename: 'bundle.js',
      path: path.resolve('.'),
      ...publicPath
    },
    devtool: 'source-map',
    module: {
      rules: [
        { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ },
        { test: /\.css$/, use: ['style-loader', 'css-loader'] },
        { test: /\.s(a|c)ss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
        { test: /\.(png|jpe?g|gif|svg)$/i, use: 'file-loader' }
      ]
    },
    devServer: {
      contentBase: path.resolve('src'),
      hot: true,
      open: true,
      port: 8001,
      watchContentBase: true,
      historyApiFallback: true,
      proxy: {
        '/api': {
          target: 'http://localhost:5000',
          secure: false
        }
      }
    },
    plugins: [
      new Dotenv(),
      new webpack.HotModuleReplacementPlugin(),
      new HtmlWebpackPlugin({
        template: 'src/index.html',
        filename: 'index.html',
        inject: 'body',
        favicon: './src/img/favicon.png'
      }),
      env
    ]
  }
}

package.json 脚本:

"scripts": {
    "frontend": "webpack-dev-server --mode=development --env.NODE_ENV=local",
    "build": "webpack -p --env.NODE_ENV=production"
  },

终端:

> webpack-dev-server --mode=development --env.NODE_ENV=local

undefined
Failed to load ./.env.
Failed to load ./.env.

标签: webpackcompiler-errorsenvironment-variablesdotenv

解决方案


推荐阅读