Установите зависимости npm для конкретной версии узла, используя package-lock.json - PullRequest
0 голосов
/ 21 декабря 2018

В моей локальной среде я использую последнюю версию node, но при развертывании своей функции AWS Lambda я должен использовать v8.10.0.

Я создал .nvmrc файл с v8.10.0 установить и установить node_modules, я просто запускаю:

nvm exec npm i

Проблема в том, что он вообще не использует package-lock.json - что даже изменяется командой npm i.

node v8.10.0 доставляет npm v5.6.0, который не предоставляет команду npm ci.

Есть ли другой способ установить зависимости для v8.10.0 с помощью файла блокировки?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

К сожалению, в версиях npm после 5.0 (в частности, 5.4 и более поздних), "npm install" может обновить файл блокировки пакета, и нет возможности избежать этого поведения.

В npm> = 6.0 вы можете использовать npm ci, который устанавливает только из файла блокировки пакета, что вам и нужно.(См. https://github.com/npm/npm/issues/17979 и https://github.com/npm/npm/issues/18286 для большой предыстории / истории.)

Если вы можете использовать узел v8.14 вместо v8.10, вы получите npm @6 из коробки.Если нет, то вы можете оказаться в ручье.

0 голосов
/ 21 декабря 2018

Вы пробовали npm shrinkwrap?IIRC package-lock.json был изменен на npm-shrinkwrap.json, но я не могу вспомнить, в какой версии

То есть, запустите npm install && npm shrinkwrap и убедитесь, что полученный json будет зафиксирован в вашем репо /переведено в AWS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...