Что означает имя пакета перед @git в файле package-lock.json

#npm #npm-install

Вопрос:

Когда я пытаюсь запустить npm install , я получаю ошибку:

 Could not install from "node_modules/eth-sig-util/ethereumjs-abi@git https:/github.com/ethereumjs/ethereumjs-abi.git" as it does not contain a package.json file.
 

Поэтому я пошел проверить разницу package-lock.json и заметил , что npm каким-то образом изменился

 "ethereumjs-abi": "git https://github.com/ethereumjs/ethereumjs-abi.git",
 

в

 "ethereumjs-abi": "ethereumjs-abi@git https://github.com/ethereumjs/ethereumjs-abi.git",
 

что нарушает npm install , поэтому мне интересно, в чем смысл размещения имени пакета раньше @git и почему это нарушает процесс установки.
Он работает после удаления ethereumjs-abi@ префикса, но появляется после запуска npm install и снова прерывается…
Заранее спасибо!

Ответ №1:

@git используется для установки пакета из репозитория git.

например: вы отправляете пакет git-репо в свою учетную запись Git и меняете какую-то часть пакета, теперь вы хотите установить этот измененный пакет в проекте, который вы можете использовать @git ‘URL-адрес git-репо вашего измененного репо’.

здесь ethereumjs-abi пакет устанавливается из репозитория https://github.com/ethereumjs/ethereumjs-abi.git" git:

 "ethereumjs-abi": "git https://github.com/ethereumjs/ethereumjs-abi.git",
 

Комментарии:

1. Спасибо! но знаете ли вы, почему npm добавляет ethereumjs-abi перед @git?

2. Я ничего об этом не знаю.

3. спасибо за решение