【问题标题】:Angular CLI gives me "TypeError: callbacks[i] is not a function" when I "ng serve"当我“ng serve”时,Angular CLI 给了我“TypeError: callbacks[i] is not a function”
【发布时间】: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
  • 那么我猜谁说“这是一个已知错误”以及如何降级这个东西的说明都会得到最佳答案。

标签: javascript angular npm angular-cli


【解决方案1】:

尝试卸载并重新安装 Angular CLI:

全局包:

npm uninstall -g @angular/cli npm cache clean if npm version is > 5 then usenpm 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

【讨论】:

【解决方案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 解决了我的问题

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-02-11
                    • 2021-11-16
                    • 2018-08-23
                    相关资源
                    最近更新 更多