
Я пытаюсь изменить пакет npm с несколькими зависимостями. Как следствие, npm install -g .
выполнение занимает много времени. Есть ли у меня другие варианты, кроме удаления зависимостей из packages.json?
решение1
--необязательноопция теперь реализована согласно этой документацииhttps://docs.npmjs.com/cli/install:
The --no-optional argument will prevent optional dependencies from being installed.
решение2
Если вы разрабатываете это node_module
самостоятельно, не тратьте время на npm install
s, вместо этого используйте npm link
.
Короче говоря, вы создаете символическую ссылку на папку вашего модуля в глобальной папке, принадлежащей npm, а затем в папке вашего приложения указываете npm использовать эту символическую ссылку.
Благодаря этому изменения, вносимые в папку модуля, немедленно отражаются в вашем приложении.
Вот основные шаги (скопированы из руководства, ссылка на которое приведена ниже; обязательно прочитайте руководство, чтобы узнать важные моменты):
- компакт-диск к
src/my_module
- Запустите "
npm link
". Это создаст символическую ссылку из глобальной папки вsrc/my_module
папку. - компакт-диск к
src/my_app
- Запустить
npm link my_module
. Это связываетnode_modules/my_module
данный конкретный проект с глобальной папкой, так чтоrequire
вызовы, ищущие ,my_module
в конечном итоге загружают его из вашей папки разработки,src/my_module
.
Посмотрите этот урок:http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears
И официальные документы для npm link
:https://docs.npmjs.com/cli/link
решение3
Эта функция была запрошена еще в 2010 году, но, к сожалению, была проигнорирована и закрыта:https://github.com/npm/npm/issues/340
Я перепробовал кучу вариантов и, наконец, нашел довольно простое решение — переименовать package.json во что-то другое перед выполнением npm install, а затем вернуть его обратно после завершения установки:
mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
решение4
Просматриваядокументыпохоже, что у него нет других вариантов, кроме --no-optional
переключателя.
Непроверено/неподтверждено
Этот SO Q&A озаглавлен:npm install
устанавливает все зависимости моего проекта по сети, даже если они уже установлены или доступны из кэшаКазалось бы, подразумевается, что есть --skip-installed
переключатель. Но в документах нет никаких ссылок на этот переключатель.