Npm 5 установить папку без использования символической ссылки
Прежде чем опубликовать мою библиотеку node, я мог бы использовать совет, о котором писал документация по npm:
Чтобы протестировать локальную установку, перейдите в другую папку, а затем выполните:
cd../some-other-folder
npm install../my-package
До версии 5 из числа npm у меня не было проблем, поскольку она создавала то, что я ожидал, то есть папку с выходом того, что я буду публиковать.
Однако, используя npm 5, теперь он создает символическую ссылку на мой локальный проект, как описано в документации npm:
npm install:
Установите пакет в каталог как символическую ссылку в текущем проект. Его зависимости будут установлены до его соединения. Если находится внутри корня вашего проекта, его зависимости могут быть подняли до верхнего уровня node_modules, как и для других типов зависимостей.
Как использовать старый способ установки локального проекта? Или есть новый способ проверить правильность моей библиотеки?
Спасибо.
Ответы
Ответ 1
Используйте npm pack
+ npm install
(как предложено установочным локальным пакетом)
npm pack <path-to-local-package>
npm install <package-version.tgz>
Это позволит вам скопировать локальный пакет на node_modules.
Обратите внимание, что в этом случае будут упаковываться только соответствующие файлы (перечисленные в разделе files вашего пакета .json). Таким образом, вы можете установить его в тестовом приложении под собственным каталогом пакета. Что-то вроде этого:
my-package
package.json
test
test-app
package.json
node_modules
my-package
Предполагая, что test
dir не включен в files
в my-package/package.json.
Это работает аналогично с npm 5 и более ранними версиями.
Ответ 2
Я написал npm-install-offline, который позволяет вам устанавливать пакеты npm из локального репозитория или папки. По умолчанию он копирует папку при установке, но вы также можете выбрать символическую ссылку. https://www.npmjs.com/package/npm-install-offline
npx npm-install-offline ../some-package
Или же
npx npm-install-offline my-npm-package --repo ./my-offline-npm
Он также установит зависимости пакетов, которые npm не делает с локальными пакетами.