当我“ng serve”时,Angular CLI 给了我“TypeError: callbacks[i] is not a function”
Posted
技术标签:
【中文标题】当我“ng serve”时,Angular CLI 给了我“TypeError: callbacks[i] is not a function”【英文标题】:Angular CLI gives me "TypeError: callbacks[i] is not a function" when I "ng serve" 【发布时间】:2018-07-18 22:50:15 【问题描述】:我实际上只是全新安装了 Angular CLI 以进行尝试,但我不知道是什么导致命令行出现以下错误:
PC:cobros Fran$ ng serve
** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
95% emitting/Users/Fran/Documents/Workspace/Repos/cobros/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:40
callbacks[i](err, result);
^
TypeError: callbacks[i] is not a function
at Storage.finished (/Users/Fran/Documents/Workspace/Repos/cobros/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:40:15)
at /Users/Fran/Documents/Workspace/Repos/cobros/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:77:9
at /Users/Fran/Documents/Workspace/Repos/cobros/node_modules/graceful-fs/polyfills.js:287:18
at FSReqWrap.oncomplete (fs.js:153:5)
这是我尝试“ng -v”时返回的信息(如果它有用的话):
Angular CLI: 1.6.8
Node: 8.9.0
OS: darwin x64
Angular: 5.2.4
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
@angular/cli: 1.6.8
@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.8
@schematics/angular: 0.1.17
typescript: 2.5.3
webpack: 3.10.0
“增强解析”模块甚至可以做什么? 我是否安装了角度错误?我按照https://github.com/angular/angular-cli 的说明进行操作,并确保我满足了先决条件。
【问题讨论】:
昨天我用 CLI 创建了一个应用程序,它工作了,我又试了一个新的,这次它崩溃了,我想发生了一些更新,也许这对帮助我们的人有帮助 在将@angular 升级到最新(5.2.4)和 cli 到 1.6.8 后,今天发生在我身上。链接到 cli 1.6.8 版本(未提及重大更改)github.com/angular/angular-cli/releases/tag/v1.6.8 哈哈,我想我只是选择了最糟糕的时刻来尝试 Angular CLI github.com/angular/angular-cli/issues/9550 那么我猜谁说“这是一个已知错误”以及如何降级这个东西的说明都会得到最佳答案。 【参考方案1】:尝试卸载并重新安装 Angular CLI:
全局包:
npm uninstall -g @angular/cli
npm cache clean
if npm version is > 5 then use
npm cache verifyto avoid errors (or to avoid using --force)
npm install -g @angular/cli@latest
本地项目包:
rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install
【讨论】:
仍然是brokerino 没有帮助。在 AngularCli 团队解决问题之前,我不得不降级到 1.6.7(请参阅 github.com/angular/angular-cli/issues/9550)。【参考方案2】:编辑:问题现已修复,因此无需再使用此解决方法。
在将@angular/cli
升级到1.6.8
后发生。
解决方案:问题出在copy-webpack-plugin
(https://github.com/webpack-contrib/copy-webpack-plugin/issues/217)
npm i copy-webpack-plugin@4.3.1 --save-dev
帮助
注意:以前提供的解决方案是将 cli 降级到 1.6.7,但没有帮助。
【讨论】:
【参考方案3】:关注 github.com/angular/angular-cli/issues/9550(感谢 @oers 提供 cmets 中的链接)
我刚刚将 Anuglar CLI 降级到 1.6.7 版。
为此,只需键入
npm uninstall -g @angular/cli
一旦完成安装以前的版本
npm install -g @angular/cli@1.6.7
注意:这会起作用,但这只是一个临时解决方案,他们可能 - 并希望 - 热修复此问题。
编辑:实际上我尝试了没有使用 CLI 的错误项目,再试一次,它不起作用,如果你关注 github 线程,它看起来像一件大事,因为它不适用于 CLI 1.5.x 或 1.6.x(未尝试与其他版本一起使用)。看起来我们对 ATM 唯一能做的就是调试或坐等。
哎呀!
【讨论】:
你可能有一个错字 - 你卸载了两次 这对我不起作用,是我错过了一个技巧还是每个人都是这样? 它不起作用,请查看编辑(这就是我取消您的编辑的原因,在您提交编辑之前我已经对其进行了编辑,但是谢谢!)【参考方案4】:编辑:问题现已修复,因此无需再使用此解决方法。
找到解决方案(解决方法)here
将 "copy-webpack-plugin": "4.3.0"
添加到您的 package.json 中
谢谢@neshkatrapati
【讨论】:
npm install copy-webpack-plugin@4.3.0 必须在安装 cli 后完成 - 在我的实例中,但可以。 它也是真正的 angular-cli 1.3 版本与 copy-webpack 更改一起使用,但是我可以想象对于许多人来说这不是一个解决方案。 不要使用变通方法,Angular 团队现在已解决。 他们似乎修复了它,我刚刚测试了使用 CLI 从头开始创建一个应用程序并且工作正常【参考方案5】:我遇到了同样的问题,这个命令为我创造了奇迹
npm install copy-webpack-plugin@4.3.1
【讨论】:
【参考方案6】:正如这里所说的https://github.com/angular/angular-cli/issues/9550,这是 copy-webpack-plugin 的问题。
可以通过npm install copy-webpack-plugin@4.3.0
解决
【讨论】:
【参考方案7】:运行这个命令 npm install copy-webpack-plugin@4.3.0
【讨论】:
【参考方案8】:编辑
只需执行yarn upgrade
。
有一个 copy_webpack_plugin 版本修复了这个错误(4.4.1),所以这应该是解决这个问题的首选。使用 npm,npm --depth 9999 update
应该可以递归更新所有依赖项。
关于 npm 更新的 depth 参数:
从 npm@2.6.1 开始,npm 更新将只检查***包。以前版本的 npm 也会递归地检查所有依赖项。要获得旧行为,请使用 npm --depth 9999 update
原答案如下:
解决方案
rm -rf node_modules package-lock.json
npm i copy-webpack-plugin@4.3.1 -E -O
npm i
解释:
我们删除了 node_modules 和 lockfile 我们仅将 copy_webpack_plugin 指定为对等依赖项(选项-O
)和精确版本(选项 -E
)
我们安装 node_modules
【讨论】:
【参考方案9】:回调[i](错误,结果); ^
TypeError: callbacks[i] 不是函数
解决方案:- npm install copy-webpack-plugin@4.3.0
【讨论】:
【参考方案10】:如果 npm install copy-webpack-plugin@4.3.1 没有帮助尝试添加 package.json:
“可选依赖”: “复制 webpack 插件”:“4.3.1” , “决议”: “复制 webpack 插件”:“4.3.1”
【讨论】:
【参考方案11】:这个问题现在应该在刚刚发布的 v4.4.1 中得到解决。 https://github.com/webpack-contrib/copy-webpack-plugin/releases/tag/v4.4.1
【讨论】:
【参考方案12】:试试这个命令 -> npm install copy-webpack-plugin@4.3.0 解决了我的问题
【讨论】:
以上是关于当我“ng serve”时,Angular CLI 给了我“TypeError: callbacks[i] is not a function”的主要内容,如果未能解决你的问题,请参考以下文章
运行 ng serve 时找不到模块“@angular/compiler-cli/ngc”
Angular CLI - ng serve - 来自节点进程的高 CPU 使用率
错误,使用 ng-cli 运行 ng serve 时编译失败