【问题标题】:Invalid rule result: Instance of class Promise无效的规则结果:Promise 类的实例
【发布时间】:2019-11-01 00:35:19
【问题描述】:

我使用 Angular 7.1.4。我想用下面这行生成一个新模块;

ng g m order-process

但是我遇到了一个错误:

Invalid rule result: Instance of class Promise.

如何解决这个问题? 节点:8.11.3


package.json (https://prnt.sc/o3cg54)

【问题讨论】:

  • 而不是m 试试module 这样ng g module order-process
  • 我试过但没有解决

标签: angular npm angular7


【解决方案1】:

此答案与最初的问题无关,但由于这是 google 中第一次出现错误消息,因此我将在此处留下一些信息,供大家在 升级 Apollo (apollo-angular) 时看到此错误从 1.x 到 2.x,ng update apollo-angular

检查您是否安装了@angular-devkit/schematics,以及它是否与您的@angular/cli 软件包版本相同。
如果不使用@angular-devkit/schematics@<your.@angular/cli.version> 安装。然后提交更改,确保您没有从失败的运行中提交更改后的 Apollo 版本,然后重试。

【讨论】:

    【解决方案2】:

    角度示意图似乎有问题- 使用 npm install --save @angular/pwa@0.6.8

    如果您遇到更多问题,也可以尝试降低 pwa 版本。

    github上的问题线程- https://github.com/angular/angular-cli/issues/11663

    【讨论】:

      【解决方案3】:

      我的问题是我的节点版本在 8.x.x 但角度 >= 8.x.x 需要节点版本 >= 10.x.x

      我正在使用nvm 更改节点版本。 像这样安装它(检查链接以了解 Windows 使用情况)

      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
      

      安装后安装节点版本 10.x.x

      nvm install 10
      

      然后像这样在终端中切换

      nvm use 10
      

      【讨论】:

      • 嗯,是的,在某些情况下,我们遇到这种情况是从节点版本焊接而来的。但我的问题位于 package-lock.json 中。我的 Angular CLI 版本是 7.x.x,但 @schematics/angular 版本是 package-lock.json 中的 8.x.x。那就是问题所在。我将@schematics/angular 版本 8.x.x 更改为 7.x.x(与 Angular CLI 相同的版本)并解决了。我在 package.json 中指定了 @schemics/angular 7.x.x 版本。
      【解决方案4】:

      确保您的 angular cli 版本和 @schemics/angular 应该相同 那么只有 ng add @angular/pwa

      将执行并成功运行,并将 service worker 模块添加到项目中

      【讨论】:

        【解决方案5】:

        删除现有的package-lock.jsonnode_modules 目录帮助我运行ng new 命令没有错误

        【讨论】:

        • 这有助于为我解决问题。迄今为止最简单、侵入性最小的解决方案!
        【解决方案6】:

        使用使用时遇到此问题: @角/cli 8.1.1, @angular-devkit/schematics 8.0.1, 节点 v8.9.4, 升级到 Node 10 修复了它。

        【讨论】:

          【解决方案7】:

          运行npm install @schematics/angular@7.0.7 --save-dev 将版本替换为与您的 @angular/cli 相同的版本(在这种情况下,7.0.7

          【讨论】:

            【解决方案8】:

            我已经解决了我的问题。我的 angular/cli 版本是 7.0.7,但我在 package-lock.json 中找到了 @schemics/angular@8.0.3。所以,我运行“npm install @schemics/angular@7.0.7 --save-dev”命令并解决了我的问题。 感谢您的关注。

            【讨论】:

            • > npm install @schematics/angular@latest -g > 删除 package-lock 和 node_modules > npm 我解决了我的问题。谢谢你
            【解决方案9】:

            这是节点中的错误。 它可以执行 3 个步骤 1.- 卸载并重新安装(最后)版本的节点 2.- 在项目内部,删除 package-lock.json 文件(它会自动重新生成)和 node_modules 文件夹 3.- 运行 npm install 重新加载 node_modules

            【讨论】:

            • 谢谢,我会尝试,但此解决方案无法解决问题。此外,正如您在答案中看到的那样,问题已解决。我的 Angular CLI 版本是 7.x.x,但 @schematics/angular 版本是 8.x.x 在包锁的内容中,这就是问题所在。所以,我会安装原理图版本 7.x.x(与 Angular/CLI 相同)
            【解决方案10】:

            Angular CLI:8.0.3 节点:10.16.0 操作系统:达尔文 x64 角度:7.2.7

            我也遇到了这个问题,但是我选择重装node后解决了!希望可以帮到你!

            【讨论】:

            • 首先,感谢您的关注,我确实重新安装了 nodejs,但它对我不起作用:( Ng --version => angular: 7.0.7 node: 10.16.0
            【解决方案11】:

            尝试安装 CLI 版本 6.0.8,然后安装在一个干净的项目中尝试 ng add @angular/pwa@0.6.8

            好像这个错误还没有被核心团队解决所以同时我们必须使用低版本

            【讨论】:

            • 你确定吗?这个解决方案太诡异了。在此解决方案结束时,其他库将受到影响。
            【解决方案12】:

            尝试生成一个空白的新项目,并检查在使用 CLI 创建模块时是否也出现相同的错误。

            如果你这样做,那么我建议重新安装 angular。

            【讨论】:

            • 谢谢我生成了一个新项目,然后成功生成了一个模块。新项目没有问题
            • 你可以检查新测试项目和你的“真实”项目中使用的包版本,也许真正的使用一些包的一些过时/错误版本。
            • 嗯,太棒了,谢谢。我试图比较两个项目。我确实从“真实”项目中复制了 package.json 内容,然后粘贴到新测试项目中 package.json 的内容。所以,我再次在测试项目中成功生成了一个模块,没有问题。但是,我在“真实”项目中仍然有错误。
            猜你喜欢
            • 2019-11-04
            • 2019-10-27
            • 1970-01-01
            • 2019-02-22
            • 1970-01-01
            • 2017-07-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多