我使用CLI和Webpack构建了Aurelia应用程序。然后升级两者。运行au run
或au run --env dev --watch
我在控制台中收到以下内容:
d:\projects\aurelia\aurelia-app\node_modules\tapable\lib\Tapable.js:63
throw new Error(`Plugin could not be registered at '${name}'. Hook was not found.\n` +
^ Error: Plugin could not be registered at 'module'. Hook was not found. BREAKING CHANGE: There need to exist a hook at 'this.hooks'. To create a compatiblity layer for this hook, hook into 'this._pluginCompat'.
at Compiler.plugin (d:\projects\aurelia\aurelia-app\node_modules\tapable\lib\Tapable.js:63:9)
at Compiler.deprecated [as plugin] (internal/util.js:52:15)
at ModulesInRootPlugin.apply (d:\projects\aurelia\aurelia-app\node_modules\enhanced-resolve\lib\ModulesInRootPlugin.js:15:11)
at Compiler.apply (d:\projects\aurelia\aurelia-app\node_modules\tapable\lib\Tapable.js:71:16)
at Compiler.deprecated [as apply] (internal/util.js:52:15)
at PathPlugin.apply (d:\projects\aurelia\aurelia-app\node_modules\awesome-typescript-loader\src\paths-plugin.ts:120:13)
at webpack (d:\projects\aurelia\aurelia-app\node_modules\webpack\lib\webpack.js:37:12)
at Object.<anonymous> (d:\projects\aurelia\aurelia-app\aurelia_project\tasks\build.ts:19:16)
at Module._compile (module.js:635:30)
at Object.require.extensions..ts (d:\projects\aurelia\aurelia-app\node_modules\aurelia-cli\lib\project.js:239:19)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (d:\projects\aurelia\aurelia-app\aurelia_project\tasks\run.ts:3:15)
我读到了Webpack 4中破坏与插件/加载器兼容性的更改。但不确定 awesome-typescript-loader 是否兼容,以及此加载器是否导致问题。相关的环境信息:
TIA提供任何帮助, 尼
答案 0 :(得分:0)
如果不知道你的加载器的完整列表,我无法猜出它是哪一个 - 你可以通过查看哪些加载器不有一个主要版本来推断它,比如,过去2-3周。
它可能是awesome-typescript-loader,虽然它们似乎已经更新了它。当webpack 4发布时,我转移到了ts-loader,解决了这个问题。
升级到webpack 4的最简单方法是从头开始或多或少地构建webpack.config,逐个复制部分并在添加下一部分之前使其工作。
删除所有text / css / json的东西,然后从打字稿开始,然后从那里开始工作。值得麻烦的是,因为webpack 4 快速
您将遇到/想要考虑的一些事情:
mode
属性设置为“development”或“production”(不再是cli参数)ts-loader
已经赶上(如果没有超过)awesome-typescript-loader
速度,这最初是后者的主要卖点;可能是时候回到“官方”了import HtmlWebpackPlugin from "html-webpack-plugin";
代替import * as HtmlWebpackPlugin from "html-webpack-plugin";
答案 1 :(得分:0)
就我而言,这是由不支持Webpack 4的旧插件html-webpack-inline-chunk-plugin
引起的。删除它后,错误消失了。
此外,还有两个可能对未来的人们有所帮助: