【问题标题】:npm install is reporting unreferenced versions of Angular componentsnpm install 报告未引用的 Angular 组件版本
【发布时间】:2021-10-02 05:47:53
【问题描述】:

我有一个 Angular 应用程序,它使用本地共享组件(通过我们自己的 npm 服务器 - Verdaccio)

我更新了其中一个共享库,并使用npm link 将其共享到我的应用程序中进行测试,一切顺利。

然后我构建它并将其推送到我们的 npm 服务器。

现在,当我尝试npm install(npm 版本 7.21.1)时,我收到以下错误

    $ npm i @my-comany/my-component-ui@7.0.5
    npm ERR! code ERESOLVE
    npm ERR! ERESOLVE unable to resolve dependency tree
    npm ERR!
    npm ERR! While resolving: @my-comany/my-application@0.0.1
    npm ERR! Found: @angular/core@12.0.5
    npm ERR!   2 more (@angular/animations, @angular/cdk)
    npm ERR!
    npm ERR! Could not resolve dependency:
    npm ERR! peer @angular/core@"12.2.4" from @angular/common@12.2.4
    npm ERR! node_modules/@angular/common
    npm ERR!   @angular/common@"^12.0.5" from the root project
    npm ERR!   peer @angular/common@"^12.0.0 || ^13.0.0-0" from @angular/cdk@12.2.4
    npm ERR!   node_modules/@angular/cdk
    npm ERR!     @angular/cdk@"^12.0.5" from the root project
    npm ERR!     1 more (@my-comany/my-suite-ui)
    npm ERR!
    npm ERR! Fix the upstream dependency conflict, or retry
    npm ERR! this command with --force, or --legacy-peer-deps
    npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

我的应用程序具有以下 Angular 相关依赖项..

      "dependencies": {
        "@angular/animations": "^12.0.5",
        "@angular/cdk": "^12.0.5",
        "@angular/common": "^12.0.5",
        "@angular/compiler": "^12.0.5",
        "@angular/core": "^12.0.5",
        "@angular/forms": "^12.0.5",
        "@angular/material": "^12.0.5",
        "@angular/material-moment-adapter": "^12.0.5",
        "@angular/platform-browser": "^12.0.5",
        "@angular/platform-browser-dynamic": "^12.0.5",
        "@angular/router": "^12.0.5",
    
    
    "devDependencies": {
        "@angular-devkit/build-angular": "~12.0.5",
        "@angular/cli": "^12.0.5",
        "@angular/compiler-cli": "^12.0.5",
        "@angular/language-service": "^12.0.5",

我尝试安装的共享库有

        "peerDependencies": {
            "@angular/animations": "~12.0.5",
            "@angular/cdk": "^12.0.5",
            "@angular/common": "~12.0.5",
            "@angular/core": "~12.0.5",         
            "@angular/forms": "~12.0.5",
            "@angular/material": "^12.0.5",
            "@angular/material-moment-adapter": "^12.0.5",
            "@angular/platform-browser": "~12.0.5",
            "@angular/platform-browser-dynamic": "~12.0.5",

我查看了我所有的包文件,但在任何地方都没有提到@angular/core@"12.2.4" from @angular/common@12.2.4

这可能来自哪里,或者我如何自己诊断?

【问题讨论】:

    标签: node.js angular npm


    【解决方案1】:

    这是一个猜测,但尝试改变

    "@angular/core": "^12.0.5",
    

    "@angular/core": "~12.0.5",
    

    您有可能也必须对其他软件包执行此操作才能使其正常工作,例如这就是我所拥有的:

        "@angular/animations": "~12.0.3",
        "@angular/cdk": "^12.2.1",
        "@angular/common": "~12.0.3",
        "@angular/compiler": "~12.0.3",
        "@angular/core": "~12.0.3",
        "@angular/flex-layout": "^12.0.0-beta.34",
        "@angular/forms": "~12.0.3",
        "@angular/material": "^12.0.2",
        "@angular/platform-browser": "~12.0.3",
        "@angular/platform-browser-dynamic": "~12.0.3",
        "@angular/router": "~12.0.3",
    

    来自this page 关于语义版本控制:

    major.minor.patch
    
    1.0.2
    

    主要、次要和补丁代表一个包的不同版本。

    npm 使用波浪号 (~) 和插入符号 (^) 分别指定要使用的补丁和次要版本。

    因此,如果您看到~1.0.2,则意味着安装版本1.0.2 或最新的补丁版本,例如1.0.4。如果您看到^1.0.2,则表示安装版本1.0.2或最新的次要版本或补丁版本,例如1.1.0

    【讨论】:

    • 我不确定它是否因为我之前做了强制,并且我将所有 ng 引用更改为使用“~”,但是 npm install no 适用于现在的错误(并且没有强制)。哇,从来没想过上面的(即^ vs ~),也没有意识到我把它们混在一起了(尽管大多数来自最后一个ng update。无论如何谢谢。
    猜你喜欢
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    相关资源
    最近更新 更多