Есть ли возможность установить пакет npm без зависимостей?

21

Я пытаюсь изменить пакет npm с несколькими зависимостями. Так как выполнение npm install -g .занимает много времени. У меня есть другие варианты, кроме удаления зависимостей из packages.json?

Джастин Даринг
источник

Ответы:

18

Опция --no- option теперь реализована в соответствии с этой документацией https://docs.npmjs.com/cli/install :

The --no-optional argument will prevent optional dependencies from being installed.
jurevert
источник
7

Просматривая документы, вы не видите ничего, кроме --no-optionalпереключателя.

Непроверенные / Uncomfirmed

Это SO Q & A под названием: npm installустанавливает все зависимости моего проекта по сети, даже если они уже установлены или доступны из кэша, может показаться, что есть --skip-installedпереключатель. Но документы не содержат никаких ссылок на этот переключатель.

SLM
источник
7

Если вы разрабатываете это node_moduleсамостоятельно, не тратьте свое время на npm installs, вместо этого используйте npm link.

Короче говоря, вы создаете символическую ссылку на папку вашего модуля в глобальной папке, принадлежащей npm, а затем в своей папке приложения вы просите npm использовать эту символическую связанную папку.

Это вносит изменения, которые вы вносите в папку модуля, чтобы немедленно отразиться в вашем приложении.

Вот основные шаги (скопировано из учебника, связанного ниже, обязательно прочитайте учебник для важных ошибок):

  1. кд src/my_module
  2. Запустите " npm link". Это создает символическую ссылку из глобальной папки на src/my_moduleпапку.
  3. кд src/my_app
  4. Беги 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

Marmor
источник
Не изменяя мой принятый ответ, но голосуя против, потому что это полезно для моего конкретного случая.
Джастин
4

Эта функция была запрошена еще в 2010 году, но, к сожалению, была проигнорирована и закрыта: https://github.com/npm/npm/issues/340

Я перепробовал несколько вариантов и, наконец, нашел довольно простое решение - переименуйте файл package.json во что-то еще до установки doint npm, а затем верните его обратно после завершения установки:

mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
Виталий Улантиков
источник
2
Вау, это серьезно до сих пор единственный путь? Это смешно, там должен быть флаг --ignore-packageили что-то.
JacobTheDev
2
Это хорошее решение, и до сих пор оно может быть лучшим решением для моего вопроса: stackoverflow.com/questions/53532845/…
aGuegu