我遇到了类似的问题,并通过此讨论找到了解决方案:
https://github.com/angular/angular-cli/issues/6417 https://github.com/angular/angular-cli/issues/6417
这似乎是更新到 Angular 6 时触发的问题。
第一次运行:
sudo npm ls webpack
如果它返回多个版本的 webpack,那就是你的问题所在:
├─┬ @angular-devkit/[email protected] /cdn-cgi/l/email-protection
│ └── [email protected] /cdn-cgi/l/email-protection
└── [email protected] /cdn-cgi/l/email-protection
除非你在其他地方需要它,否则你只需要将 webpack 放在 @angular-devkit/build-angular 中即可。
我还用 @latest 更新了所有 @angular-devkit/* 。
一旦明确存在多个版本,我就执行了以下操作以使其再次运行:
sudo npm uninstall --save-dev webpack
sudo npm ls webpack
sudo npm cache verify
我在尝试找到解决方案时卸载了 @angular-devkit/build-Angular。所以我在做其他事情之前将其重新插入。它似乎有自己的 webpack 版本。如果您已经有它,只需更新它即可。
请注意,我没有重新安装 webpacksudo npm i webpack
。无论我以何种方式尝试,它都不喜欢那样。
sudo npm install @angular-devkit/build-angular@latest
sudo npm ls webpack
曾经只有一个版本的 webpack,ng serve
应该可以再次正常工作。
附: peterpeterparker 建议的替代修复帮助我找到了这个解决方案。请注意,我还没有尝试过,但认为它可能会有所帮助。
彼得彼得帕克的修复 https://github.com/angular/universal-starter/issues/581:
npm remove webpack --save
rm -r node_modules
rm package-lock.json
npm install
附言Sudo 仅适用于 Mac。我添加它是为了方便复制和粘贴我的解决方案。如果不需要,请勿复制。