“process.env”的值与 Webpack Encore 和 Dotenv 发生冲突

Ste*_*ant 3 symfony webpack webpack-encore dotenv

我将 Webpack Encore 与Dotenv-webpack一起使用,但收到此错误:

编译失败。

定义插件

“process.env”的值存在冲突

我的 webpack.config.js:

const Dotenv = require('dotenv-webpack')
const Encore = require('@symfony/webpack-encore')

if (!Encore.isRuntimeEnvironmentConfigured()) {
  Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev')
}

Encore
  // ...
  .addPlugin(new Dotenv({
    path: './.env.local'
  }))

module.exports = Encore.getWebpackConfig();
Run Code Online (Sandbox Code Playgroud)

使用的版本:

"devDependencies": {
    "@symfony/webpack-encore": "^1.2.0",
    "dotenv-webpack": "^7.0.2",
}
Run Code Online (Sandbox Code Playgroud)

我发现了类似的问题,但我并不真正理解解决方案,因此无法将此解决方案与 Symfony Encore 一起使用。

造成此问题的原因是什么以及如何解决此问题?

小智 6

我遇到了类似的问题,在编译时发出警告,通过将选项添加ignoreStubtrue.

.addPlugin(new Dotenv({
    ignoreStub: true,
}))
Run Code Online (Sandbox Code Playgroud)

这是在 7.0.0 版本中引入的dotenv-webpack

https://github.com/mrsteele/dotenv-webpack/releases/tag/v7.0.0