Пакет Npm для включения локальных модулей

#node.js #npm #node-modules #package.json #npm-pack

#node.js #npm #узел-модули #package.json #npm-pack

Вопрос:

У меня есть несколько локальных модулей, которые я хочу включить в свой пакет для отправки на сервер. Поскольку эти локальные пакеты отсутствуют в реестре npm, они должны быть частью пакета.

Я пробовал несколько способов включить папку node_modules в пакет, используя пакет npm, однако, похоже, это вообще невозможно?

Во-вторых, я попытался перечислить локальные модули в bundledDepencies в файле package.json и использовать пакет npm, однако он также не включает локальные модули, несмотря ни на что;

 {
    "name": "dev",
    "version": "1.0.0",
    "main": "main.js",
    "dependencies": {
        "local-module": "file:../../local-module"
    },
    "bundledDependencies": [
        "local-module"
    ]
}
  

Как я могу включить эти локальные модули в пакет разработки?

Локальный модуль сам содержит зависимости, не уверен, что это усложняет ситуацию?

Комментарии:

1. Есть ли локальные зависимости от GitHub?

2. В данный момент я пытаюсь сделать то же самое, и, похоже, это работает. Одна ошибка заключается в том, что вам нужно запустить npm install после настройки локальной зависимости, чтобы npm создал ссылку в вашей папке node_modules на local-module .

Ответ №1:

Некоторое время назад у меня была похожая проблема, и хорошее и простое решение — просто поместить ваши локальные модули в частные репозитории git (которые теперь бесплатны на GitHub, спасибо Microsoft 🙌)

Затем, в вашем package.json , просто добавьте:

 "dependencies" : {
  "name1" : "git://github.com/user/project.git#commit-ish",
  "name2" : "git://github.com/user/project.git#commit-ish"
}
  

Источник, документы npm

Ответ №2:

Я считаю, что подход Алисии самый чистый. Однако для тех, кто сталкивается с той же проблемой, что и я, когда серверу требуется архив, но у него не установлен git, я добавил свои локальные пакеты в отдельную папку в проекте под названием repo и сослался на них в package.json как;

 "dependencies": {
  "my-local-package": "file:./repo/my-local-package"
}
  

Ответ №3:

Существует также yalc, который создает локальное хранилище для локальных пакетов. После добавления локального пакета в хранилище вы можете использовать yalc для копирования локального пакета в другой пакет. Вы также можете использовать его для обновления локальных пакетов.