错误:检测到AotPlugin但它是错误类的实例

afe*_*eef 7 node.js angularjs

问题

服务

模块构建失败:错误:检测到AotPlugin但它是错误类的实例.

完整错误报告日志

  ERROR in ./src/main.ts
  Module build failed: Error: AotPlugin was detected but it was an instance of the wrong class.
  This likely means you have several @ngtools/webpack packages installed. You can check this with `npm ls @ngtools/webpack`, and then remove the extra copies.
  at Object.ngcLoader 
 (D:\testingapp\node_modules\@ngtools\webpack\src\loader.js:358:19)
  @ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts
Run Code Online (Sandbox Code Playgroud)

npm ls @ ngtools/webpack

testingapp@0.0.0 D:\testingapp
 +-- @angular/cli@1.2.6
 | `-- @ngtools/webpack@1.5.5
`-- angular-cli@1.0.0-beta.28.3
 `-- @ngtools/webpack@1.5.1
Run Code Online (Sandbox Code Playgroud)

npm缓存验证

仍然存在问题.

  • 任何建议都是最受欢迎的.

fou*_*ube 6

运行ng eject并尝试运行我的业力测试后,这个问题出现了.

即使我不认为这是一个最佳解决方案,我通过以下方式解决了这个问题:

  1. 删除 @ngtools/webpack

    $ npm remove --save @ ngtools/webpack

  2. 要求@ngtools/webpack这是@angular/cli我的webpack.config.js中的子依赖项

    // webpack.config.js
       //
     // Other require statements
     const { AotPlugin } = 
    require('./node_modules/@angular/cli/node_modules/@ngtools/webpack');
    
    Run Code Online (Sandbox Code Playgroud)

    /**更改装载机/*

      module.exports = {
        // ...
    
         "module": {
        "rules": {
         // ...
          {
          "test": /\.ts$/,
          /* REMOVE: "loader": "@ngtools/webpack", */
          "loader": 
            "./node_modules/@angular/cli/node_modules/@ngtools/webpack"
              }
         }
         // ...
         }
         }
    
    Run Code Online (Sandbox Code Playgroud)