当前位置: 首页 > 面试题库 >

webpack react process.env始终为空(Windows 10)

戎兴言
2023-03-14
问题内容

我已经阅读了堆栈溢出时的所有文章,还有200多个来自Google搜索的文章,我一生都无法绕过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); //从运行的应用程序中的render方法开始 "npm start"

总是返回 {}

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

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

大约3个小时以来,我一直对此感到震惊。任何帮助表示赞赏。


问题答案:

DefinePlugin您正在使用的配置会使用process.env.NODE_ENV您配置的值替换代码中表达式的出现-
它不会涉及对的引用process.env,因为您没有告诉它使用该确切表达式执行任何操作-您正在使用的配置只是替换具有共同根的多个表达式的简写。

Webpack正在检测到您正在引用全局process变量,并从node-libs-
browser
注入了process模拟,如您所见,它定义了一个空对象。env

您可以使用nodeWebpack配置进行控制。添加node: {process: false}到您的配置中将禁止注入模拟process



 类似资料:
  • 我有两个不同的活动,在第一个活动中,我在一些EditText中输入一些信息,然后进入第二个活动,但当我返回时,第一个活动中EditText上的文本消失了。 以下是第一个活动的OnCreate() 我正在使用onSaveInstanceState方法保存信息 在进行调试时,我可以看到确实在onSaveInstanceState方法中填充了savedInstanceState捆绑包,但在OnCreat

  • 我将Spring Boot版本='1.4.0.rc1'与Spring Boot Stormpath 1.0.2一起使用。 我试图使用多部分文件上传,但MultipartFile在控制器中总是为空。 这是控制器,在下面的代码中,总是成功,总是失败: 我的集成测试使用改型: 我使用自动配置,所以我唯一的自定义配置类配置StormPath: 更新:这是传出请求。我不确定如何在多部分解析器本身中启用日志记

  • 问题内容: 我尝试@Inject这样的字段(它是一个jar模块,在META-INF下存在空bean.xml): IDataProvider接口 数据提供者实现import javax.enterprise.context.ApplicationScoped; 我尝试注入DataProvider的类 如果我在Wildfly上运行此命令,则注入的dataProvider始终为null(DataCont

  • 我试图学习Android的SmartLocationLibrary获取位置,而我从它获取的位置总是空的,所以当我尝试用它做一些事情时,我会得到空对象引用错误。 我为SmartLocatonLibrary创建了一个实用工具类 实现“com.android.support”:appcompat-v7:28.0.0“实现”com.android.support“:support-v4:28.0.0”实现

  • platformVersion和environment始终为空。在日志中:添加[class path resource[tests.properties]]PropertySource以最低的搜索优先级。我看到stackoverflow上的其他帖子(Autowired Environment是空的),我不想去实现EnvironmentAware。为环境而将私人改为公共并不能解决问题。任何其他想法都

  • 我正在使用FCM进行消息推送,我正在将数据从通知发送到我正在打开的活动。 建筑通知规范: 在我的活动中,我得到了如下意图: 但问题是,每次Intent Extras在活动中为空时,我都检查了我在社区中找到的所有可能的原因,但每次响应都是相同的。 我试过下面提到的链接 Intent的额外值始终为空 Android通知PendingIntent Extras null 总是从通知意图android获取