相关疑难解决方法(0)

'compilation' 参数必须是 Compilation 的实例

在我的 Angular 12.0.2 项目上运行“ng build”时出现此错误

./src/polyfills.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
TypeError: The 'compilation' argument must be an instance of Compilation
    at getCompilationHooks (D:\Dev\Git_Merc\mercury\node_modules\webpack\lib\javascript\JavascriptModulesPlugin.js:125:10)
    at D:\Dev\Git_Merc\mercury\node_modules\webpack\lib\javascript\CommonJsChunkFormatPlugin.js:43:19
    at Hook.eval [as call] (eval at create (D:\Dev\Git_Merc\mercury\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:7:1)
    at Hook.CALL_DELEGATE [as _call] (D:\Dev\Git_Merc\mercury\node_modules\tapable\lib\Hook.js:14:14)
    at Compiler.newCompilation (D:\Dev\Git_Merc\mercury\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1030:30)
    at D:\Dev\Git_Merc\mercury\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1073:29
    at Hook.eval [as callAsync] (eval at create (D:\Dev\Git_Merc\mercury\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (D:\Dev\Git_Merc\mercury\node_modules\tapable\lib\Hook.js:18:14)
    at Compiler.compile (D:\Dev\Git_Merc\mercury\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1068:28)
    at Compiler.runAsChild (D:\Dev\Git_Merc\mercury\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:520:8)
Run Code Online (Sandbox Code Playgroud)

我一直在谷歌上搜索,但找不到任何可以解决我的问题的东西。我不确定是什么触发了这个。

版本:

Angular CLI: 12.0.2
Node: 14.17.0
Package Manager: npm 7.14.0
OS: win32 …
Run Code Online (Sandbox Code Playgroud)

angular-cli

23
推荐指数
3
解决办法
4万
查看次数

Webpack definePlugin 未设置/读取 node_env 变量

我在通过 Webpack 的 definePlugin 将 node_env var 注入我的代码时遇到了真正的问题,在阅读了大量帖子后,似乎没有任何效果。我有一种感觉,我错过了一些东西......

所以我的生产 webpack 配置是 -

// Config
import path from 'path';
import webpack from 'webpack';
import config from './config';


/**
 * Webpack config for compiling the
 * React/Redux/ES6 scripts.
 *
 * ENV = production
 *
 * @type {Object}
 */
module.exports = {
    entry: path.resolve(__dirname, '../', config.assets.scripts.src_dir, config.assets.scripts.entry),
    devtool: false,
    output: {
        path: path.resolve(__dirname, config.assets.scripts.dist_dir),
        filename: config.assets.scripts.dist_min
    },
    module: {
        loaders: [
            {
                test: /.js?$/,
                loader: 'babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0',
                exclude: /node_modules/
            },
            {
                test: /\.json$/,
                loader: …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack react-redux

7
推荐指数
1
解决办法
7788
查看次数

“process.env”的值与 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 一起使用。

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

symfony webpack webpack-encore dotenv

3
推荐指数
1
解决办法
4259
查看次数