gpt4 book ai didi

node.js - webpack React process.env 始终为空(Windows 10)

转载 作者:行者123 更新时间:2023-12-03 13:20:33 25 4
gpt4 key购买 nike

我已经阅读了 Stack Overflow 上的所有文章以及来自 google 搜索的大约 200 多篇文章,但我一生都无法理解 process.env。无论我做什么,它始终是一个空对象。

const path = require("path");
const webpack = require('webpack');

module.exports = {
entry: {
search: './src/search/search_index.js',
// search: './src/search/search_index.js'
},
output: {
path: path.join(__dirname, "../website/public/javascript/react"),
publicPath: '/',
filename: "[name].bundle.js"
},
module: {
loaders: [{
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['react', 'es2015', 'stage-1']
}
}]
},
resolve: {
extensions: ['', '.js', '.jsx']
},
devServer: {
historyApiFallback: true,
contentBase: './'
},
plugins: [
new webpack.DefinePlugin({
"process.env" : {
'NODE_ENV': '"production"'
}
})
]
};

"scripts": {
"start": "webpack-dev-server --inline --hot --content-base src/search",
"test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js --recursive ./test",
"test:watch": "npm run test -- --watch"
}

console.log(process.env);//来自正在运行的应用程序中以 "npm start"

启动的渲染方法

始终返回 {}

我试图在我的构建上将 NODE_ENV 设置为生产,并且 %NODE_ENV% 显示生产的运气为零,但无论如何,我在控制台中收到关于它在较慢的构建上运行以使用 NODE_ENV 生产的警告消息。

为了尝试放松正在发生的事情,我只是想看看我的应用程序在 process.env 中得到了什么,它是一个空对象。所以然后我尝试使用defineplugin对其进行硬编码,再次测试发生了什么,结果是相同的。

我已经为此苦苦挣扎了大约 3 个小时。如有任何帮助,我们将不胜感激。

最佳答案

您使用的 DefinePlugin 配置会将代码中出现的 process.env.NODE_ENV 表达式替换为您配置的任何值 - 它不会触及对 process.env,因为您没有告诉它对确切的表达式执行任何操作 - 您使用的配置只是替换共享公共(public)根的多个表达式的简写。

Webpack 检测到您正在引用全局 process 变量并注入(inject) process mock来自node-libs-browser ,如您所见,它定义了一个空的 env 对象。

您可以使用node Webpack config来控制这个。将 node: {process: false} 添加到您的配置中将禁用 process 的模拟注入(inject)。

关于node.js - webpack React process.env 始终为空(Windows 10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41248575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com