Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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
Javascript 为什么webpack 5在一个文件中忽略节点_ENV,但在另一个文件中读取_Javascript_Node.js_Webpack - Fatal编程技术网

Javascript 为什么webpack 5在一个文件中忽略节点_ENV,但在另一个文件中读取

Javascript 为什么webpack 5在一个文件中忽略节点_ENV,但在另一个文件中读取,javascript,node.js,webpack,Javascript,Node.js,Webpack,面对奇怪的问题,Webpack5正在读取父文件并忽略 const isDev = process.env.NODE_ENV !== 'production'; 但在另一个文件中读取同一行,结果是正确的 包JSON "build:prod": "cross-env NODE_ENV=production webpack --config internals/webpack/webpack.prod.babel.js --color -p --progress --h

面对奇怪的问题,Webpack5正在读取父文件并忽略

const isDev = process.env.NODE_ENV !== 'production';
但在另一个文件中读取同一行,结果是正确的

包JSON

"build:prod": "cross-env NODE_ENV=production webpack --config internals/webpack/webpack.prod.babel.js --color -p --progress --hide-modules --display-optimization-bailout",
网页包配置

module.exports = (env, argv) => {
  return {
    entry: path.join(process.cwd(), 'index.js'),
    target: 'node',
    mode: 'production',

    module: {
      rules: [
        {
          test: /\.jsx?$/, // Transform all .js and .jsx files required somewhere with Babel
          exclude: /node_modules/,
          use: {
            loader: 'babel-loader',
          },
        },
      ],
    },

    output: {
      filename: 'server.bundle.js',
      path: path.resolve(process.cwd(), 'build'),
    },

    optimization: {
      minimize: true,
      minimizer: [new TerserPlugin()],
      nodeEnv: 'production',
    },

    plugins: [
      new Dotenv({
        path: path.join(process.cwd(), 'config', '.env.production'), // load this now instead of the ones in '.env'
      }),

      new webpack.EnvironmentPlugin({
        NODE_ENV: JSON.stringify('production'),
      }),
    ],
  };
};
索引

const express = require('express');
const path = require('path');
const server = express();

require('./middlewares/frontendMiddleware')(server);
前端中间件

module.exports = (app, options) => {
  const isDev = process.env.NODE_ENV !== 'production';

  if (isDev) { // <-- Thinks NODE_ENV isDev
    const addDevMiddlewares = require('./addDevMiddlewares');

    addDevMiddlewares(app, webpackConfig);
  } else {
    const addProdMiddlewares = require('./addProdMiddlewares');

    addProdMiddlewares(app, options);
  }

  return app;
};
module.exports=(应用程序,选项)=>{
const isDev=process.env.NODE_env!=“生产”;
if(isDev){//
const isDev = process.env.NODE_ENV !== 'production';

  if (isDev) {
    ... // <-- Nicely ignores, or maybe not, but this peace of code is not present in the final build.

  } else{
    ... // <-- Goes here. All good!
  }