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 не делает с локальными пакетами.