如何使用Webpack EnvironmentPlugin禁用电子安全警告

时间:2018-11-25 20:46:31

标签: webpack electron

在开发中,我的电子应用程序的内容由webpack-dev-server通过localhost:8080提供。这会在JS控制台中触发一些嘈杂的警告。我想关闭它们,因为生产应用程序实际上不会从外部来源加载任何内容。

在main.js中,我可以这样做:

process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = true

那很好,但是我不喜欢将其硬编码到源代码中。我认为应该由开发人员构建过程提供此类信息。

我尝试使用webpack EnvironmentPlugin,但没有任何效果。

webpack.dev.config.js中的相关代码段

plugins: [
    new HtmlWebpackPlugin(),
    new MiniCssExtractPlugin(),
    new webpack.EnvironmentPlugin({
        'NODE_ENV': JSON.stringify('development'),
        // disables electron warning about insecure content that only applies in dev scenario
        'ELECTRON_DISABLE_SECURITY_WARNINGS': true
    })
]

我最初尝试使用DefinePlugin,如下所示:

plugins: [
    new HtmlWebpackPlugin(),
    new MiniCssExtractPlugin(),
    new webpack.DefinePlugin({
        'process.env.NODE_ENV': JSON.stringify('development'),
        // disables electron warning about insecure content that only applies in dev scenario
        'process.env.ELECTRON_DISABLE_SECURITY_WARNINGS': true
    })
]

在两种情况下,构建都能成功,但是设置无效,并且我在JS控制台中看到警告。有什么作用?

使用webpack 4和electronic 3。

1 个答案:

答案 0 :(得分:-1)

您解决了吗?如果您仍然需要一些想法:是由于CSP- Content-Security-Policy 。了解更多:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

摆脱警告的一种方法是在html文件中设置元数据。在此样板的app.html中找到一个示例:https://github.com/wende60/Electron-Webpack4-React-Sass

关于wende60