npm install почему все выполняется? - PullRequest
0 голосов
/ 22 сентября 2019

Во-первых, я действительно новичок в этом npm, как и Angular.Я нахожусь на проекте, который, как я полагал, работал в нашей области песочницы.В прошлом основное развитие делалось в области, в которой был доступ к Интернету для получения пакетов, но текущая среда, в которой я нахожусь, не может подключиться к сети.У нас есть хранилище во внутренней сети, из которой мы извлекаем пакеты.

Есть множество проблем, с которыми я сталкиваюсь, но я просто пытаюсь пройти 1 за раз.Я подумал, что могу просто запустить npm install packageName, чтобы посмотреть, смогу ли я получить последнюю версию только одного пакета.Казалось бы, проекты package.json всегда выполняются, несмотря на мои попытки вытащить только указанный проект.Я знаю, что он читает файл package.json, потому что я уже отследил ошибку до несуществующего пакета, называемого popper.Если я удалю поппер из файла package.json, то эта ошибка исчезнет.Как я могу только взять пакет и ничего больше?Например, пытаясь вытащить только последнюю версию пакета angular5-csv.

npm install angular5-csv
npm install angular5-csv --no-optional
npm install angular5-csv --production --no-package-lock --no-save
npm install angular5-csv --production --no-package-lock --no-save

Неужели я ошибаюсь, полагая, что package.json не следует читать постоянно?Я знаю, что он выполняется, потому что обновляется более 100 пакетов.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Когда вы устанавливаете пакет, вместе с этим также загружаются зависимости пакета.Если вы читаете эту npm документацию по npm-install .Он говорит If a package references to another package with a git URL, npm depends on a preinstalled git., поэтому он будет использовать установленный системой git для получения этих зависимостей или обновления текущих пакетов в соответствии с зависимостями установочного пакета.Это приведет к update your packages as underlying dependencies is also getting updated.

Если вы сравните сейчас это с пряжей, yarn add вызывает it places the package on disk. During the next install, this package will be used instead of sending an HTTP request to get the tarball from the registry. Желаемое действие, которое вы искали.

Один из способов избежать этого состоит в том, чтоиспользуйте семантическое управление версиями по назначению и укажите "angular5-csv": "1.0.0" в вашем package.json для своих приложений.Таким образом, package-lock.json получит определенную версию пакета, а npm не обновит эти пакеты.

1 голос
/ 22 сентября 2019

Одним простым обходным путем может быть переименование вашего package.json + install + переименование еще раз:

mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json

В зависимости от содержимого вашего package.json вы можете попробовать

  • npm install: установит и «зависимости», и «devDependencies»

  • npm install --production: установит только «зависимости»

  • npm install --dev: будут установлены только "devDependencies"

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