#javascript #npm #create-react-app
#javascript #npm #создать-реагировать-приложение
Вопрос:
Я играю с новым приложением typescript react. (создано с помощью CRA) Я использую npm@5.6.0 включено на ПК и @6.4.1 на другом. Более новая версия устанавливает зависимости с более старой версией, чем более новая. Более новый также показывает 63 уязвимости низкой серьезности после установки.
installed with 5.6.0
"@babel/code-frame": "7.0.0",
"@babel/generator": "7.4.0",
"@babel/helpers": "7.4.2",
"@babel/parser": "7.4.2",
"@babel/template": "7.4.0",
"@babel/traverse": "7.4.0",
"@babel/types": "7.4.0",
"convert-source-map": "1.6.0",
"debug": "4.1.1",
"json5": "2.1.0",
"lodash": "4.17.11",
"resolve": "1.10.0",
"semver": "5.6.0",
"source-map": "0.5.7"
installed with 6.4.1
"@babel/code-frame": "^7.0.0",
"@babel/generator": "^7.2.2",
"@babel/helpers": "^7.2.0",
"@babel/parser": "^7.2.2",
"@babel/template": "^7.2.2",
"@babel/traverse": "^7.2.2",
"@babel/types": "^7.2.2",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
"lodash": "^4.17.10",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
Ответ №1:
Из документа npm :https://docs.npmjs.com/files/package-locks
для установки пакета могли использоваться разные версии npm (или других менеджеров пакетов), каждая из которых использует немного отличающиеся алгоритмы установки.
При установке без блокировки пакетов могут быть получены разные выходные данные.
Вот почему вам нужно зафиксировать package-lock.json
файл после первой установки, чтобы убедиться, что кто-либо из вашей команды запускает npm install
после этого, получает точно такое же дерево зависимостей.
Комментарии:
1. Когда я запускаю
npm install
более старую версию -> commit, а затем запускаю ее снова в более новой версии, это изменяет package-lock.json.