3

我的环境:

  • 节点 v6.17.1
  • npm v6.14.4

我跑了npm install --save --save-exact mjml@4.5.1,然后我的package.json表演

"mjml": "4.5.1",

我的package-lock.json节目:

 "mjml": {
      "version": "4.5.1",
      "resolved": "https://npm.alertmd.io/mjml/-/mjml-4.5.1.tgz",
      "integrity": "sha512-sQVbQ30UwxMpjzkTPdU9RD5OC9ikEjtZEY+zqAioHXAtEmiO0L0eUdfpcb0ni1pu09hMWU4iqRtOyxLgZIOThg==",
      "requires": {
        "mjml-accordion": "4.5.1",
        "mjml-body": "4.5.1",
        "mjml-button": "4.5.1",
        "mjml-carousel": "4.5.1",
        "mjml-cli": "4.5.1",
        "mjml-column": "4.5.1",
        "mjml-core": "4.5.1",
        "mjml-divider": "4.5.1",
        "mjml-group": "4.5.1",
        "mjml-head": "4.5.1",
        "mjml-head-attributes": "4.5.1",
        "mjml-head-breakpoint": "4.5.1",
        "mjml-head-font": "4.5.1",
        "mjml-head-preview": "4.5.1",
        "mjml-head-style": "4.5.1",
        "mjml-head-title": "4.5.1",
        "mjml-hero": "4.5.1",
        "mjml-image": "4.5.1",
        "mjml-migrate": "4.5.0",
        "mjml-navbar": "4.5.1",
        "mjml-raw": "4.5.1",
        "mjml-section": "4.5.1",
        "mjml-social": "4.5.1",
        "mjml-spacer": "4.5.1",
        "mjml-table": "4.5.1",
        "mjml-text": "4.5.1",
        "mjml-validator": "4.5.0",
        "mjml-wrapper": "4.5.1"
      }
    }

此外,我的其他依赖项都没有 mjml 作为子依赖项。

但是,当我跑步时,npm show mjml version我得到:4.6.2.

我认为使用--save-exact会安装确切的版本 4.5.1,所以我不明白什么?

4

1 回答 1

3

您假设--save-exact将安装的确切版本 ( 4.5.1) 是正确的。

但是,当您使用 npmshow命令时,即当您运行时:

npm show mjml version

您实际上是GET在对 npm 注册表执行 http 请求https://registry.npmjs.org/mjml。上述命令查询注册表/数据库并返回mjml注册表中可用的最新版本,即4.6.2本例中的版本。

要获取/检查mjml已安装的版本,您需要使用 npmls命令。

  1. cd到您的项目目录。
  2. 然后运行:

    npm ls mjml
    

    这会将以下内容打印到您的控制台:

    └── mjml@4.5.1
    
于 2020-04-25T09:12:23.440 回答