Javascript 为什么webpack 5在一个文件中忽略节点_ENV,但在另一个文件中读取
面对奇怪的问题,Webpack5正在读取父文件并忽略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
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!
}