npm установить - сохранить-точно не соблюдая точную версию - PullRequest
1 голос
/ 25 апреля 2020

Мое окружение:

  • узел v6.17.1
  • npm v6.14.4

Я бежал npm install --save --save-exact mjml@4.5.1, а потом мой package.json показывает

"mjml": "4.5.1",

My 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, так что я не понимаю?

1 Ответ

1 голос
/ 25 апреля 2020

Вы предполагаете, что --save-exact установит точную версию (4.5.1) правильно.

Однако, когда вы используете команду npm show, т. е. когда вы запускаете:

npm show mjml version

, вы, по сути, выполняете запрос http GET в реестр npm на https://registry.npmjs.org/mjml. Вышеупомянутая команда запрашивает реестр / базу данных и возвращает последнюю версию mjml, которая доступна в реестре, т.е. в данном случае версию 4.6.2.

Чтобы получить / проверить, какая версия mjml имеет После установки вам необходимо использовать команду npm ls.

  1. cd в каталоге вашего проекта.
  2. Затем запустить :

    npm ls mjml
    

    Это выведет на вашу консоль следующее:

    └── mjml@4.5.1
    
...