我已经完成了面试的家庭作业。它需要在Angular中完成,所以我想在开始之前我会快速升级Node.js,NPM和Angular CLI。看起来这是一个坏主意。
运行我的命令之后:ng new project-name --style scss
一切似乎都很好。但是当我运行ng serve
时,我收到以下错误:
Cannot find module 'uglifyjs-webpack-plugin'
Error: Cannot find module 'uglifyjs-webpack-plugin'
at Function.Module._resolveFilename (module.js:555:15)
at Function.Module._load (module.js:482:25)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/andybarratt/dev/project-name/node_modules/@angular/cli/models/webpack-
configs/production.js:13:24)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/andybarratt/dev/project-name/node_modules/@angular/cli/models/webpack-
configs/index.js:9:10)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
我无法在任何地方找到任何涉及Angular的错误。正如我所说,这是一个完全干净的项目;我还没有开始编码。
正在运行ng --version
给我这个:
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 1.6.6
Node: 9.4.0
OS: darwin x64
Angular: 5.2.2
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
@angular/cli: 1.6.6
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.6
@schematics/angular: 0.1.17
typescript: 2.5.3
webpack: 3.10.0
帮助?
答案 0 :(得分:13)
暂时将"uglifyjs-webpack-plugin": "1.1.6"
添加到您的package.json,直到他们修复了依赖项问题(https://github.com/angular/angular-cli/issues/9427)
你也可以使用命令npm i --save-dev uglifyjs-webpack-plugin@1.1.6
而不是手动编辑package.json @Botonomous和@toughskin提到
答案 1 :(得分:12)
这只是在他们的GitHub帐户https://github.com/angular/angular-cli/issues/9427上调出来的。
只需获取早期版本,和/或修复问题并提出拉取请求(PR)。
答案 2 :(得分:1)
作为最新的
uglifyjs-webpack-plugin
发布了1.1.8版本,可以解决此问题。
您可以按照以下步骤强制本地安装使用此版本:
npm install uglifyjs-webpack-plugin@1.1.8 --save
npm uninstall uglifyjs-webpack-plugin@1.1.8 --save
通过安装和卸载特定版本,您将更新本地npm缓存以解析与该版本匹配的范围。
我想提醒大家,如果您使用锁定文件,那么您只能进行可重现的安装。 NPM v5 +和Yarn都支持锁定文件。如果您的CI工作一天而不是下一天并且您没有更改您的代码或package.json,则可能是因为您的某个依赖项发布错误而您没有锁定文件。
作为图书馆使用者,您有责任使用锁定文件。没有人想要发布有bug的版本,但有时会发生,我们能做的最好的事情就是尽快使用新版本来修复它。当你有几千个完全依赖时,它们中的一个发布不好只是时间问题。
回答来自 Can't serve due to uglifyjs-webpack-plugin 1.1.7 release
答案 3 :(得分:0)
我一直在争论这个问题一个小时。我通过使用timjklein36的评论找到了问题here。我能够通过使用以下命令回滚到以前的版本来解决问题:
npm i --save-dev uglifyjs-webpack-plugin@1.1.6
对于这个答案,所有归功于GitHub上的timjklein36。我只希望能在某个时候保存一些。