npm无法更改Jasmine软件包版本

时间:2018-12-15 17:59:35

标签: npm jasmine

如果我从npm view jasmine version运行npm view jasmine version -g~,则返回的版本为3.3.1

我需要的版本为2.8.0,所以我尝试使用npm install jasmine@2.8.0 -g降级,但是npm view jasmine version仍然是3.3.1

现在,如果我使用npm list -g,我会看到茉莉花(2.8.0)的正确版本...那么3.3.1是哪里来的?

    ├─┬ jasmine@2.8.0
    │ ├── exit@0.1.2
    │ ├─┬ glob@7.1.3
    │ │ ├── fs.realpath@1.0.0
    │ │ ├─┬ inflight@1.0.6
    │ │ │ ├── once@1.4.0 deduped
    │ │ │ └── wrappy@1.0.2
    │ │ ├── inherits@2.0.3
    │ │ ├─┬ minimatch@3.0.4
    │ │ │ └─┬ brace-expansion@1.1.11
    │ │ │   ├── balanced-match@1.0.0
    │ │ │   └── concat-map@0.0.1
    │ │ ├─┬ once@1.4.0
    │ │ │ └── wrappy@1.0.2 deduped
    │ │ └── path-is-absolute@1.0.1
    │ └── jasmine-core@2.8.0

1 个答案:

答案 0 :(得分:1)

了解npm view命令:

运行以下两个npm view命令之一:

npm view jasmine version

npm view jasmine version -g

您正在向npm注册表发送一个GET请求。更具体地说,您正在向以下端点发送请求:

https://registry.npmjs.org/jasmine

您可以通过在命令中附加-d选项以获取其他日志记录信息来进行验证。例如,如果您运行;

npm view jasmine version -d

您会在日志中看到其他信息,其中包括以下内容:

  

npm http request GET https://registry.npmjs.org/jasmine

注意:上面的这一行指示您的view命令向其发出请求的端点。


那么3.3.1是哪里来的?

3.3.1是npm注册表中可用的 jasmine 软件包的最新版本。任何view命令的结果都不会指示有关系统上安装的软件包的信息,而是会返回有关npm注册表中保留的软件包的信息(元数据)。

运行时,您将继续看到版本3.3.1登录到控制台;

npm view jasmine version

(从系统上的任何目录位置开始),直到将jasmine的较新版本发布到npm注册表中为止。


附加说明:

  1. 您正在运行的两个npm命令,即:

    npm view jasmine version
    

    npm view jasmine version -g
    

    实际上是相同的命令。 view命令不提供-g选项。 -g选项将被忽略。

  2. npm list命令(您已经发现)应该用于检索有关系统上安装的软件包的信息。因此,为什么它指示您的预期结果。