Пакет Npm для включения локальных модулей
У меня есть несколько локальных модулей, которые я хочу включить в свой пакет для отправки на сервер. Поскольку эти локальные пакеты отсутствуют в реестре 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"
]
}
Как я могу включить эти локальные модули в пакет dev?
Локальный модуль сам содержит зависимости, не уверен, что это усложнит ситуацию?
2 ответа
Некоторое время назад у меня была похожая проблема, и хорошим и простым решением было просто поместить ваши локальные модули в частные git-репозитории (которые теперь бесплатны на GitHub, спасибо Microsoft)
Тогда в вашем package.json
, просто добавь:
"dependencies" : {
"name1" : "git://github.com/user/project.git#commit-ish",
"name2" : "git://github.com/user/project.git#commit-ish"
}
Источник, нпм документы
надеюсь, это поможет
Я верю, что подход Алисии - самый чистый. Однако для кого-то, кто сталкивается с той же проблемой, что и я, когда серверу требуется tarball, но у него нет установленного git, я добавил свои локальные пакеты в отдельную папку в проекте с именем repo и сослался на них в package.json как;
"dependencies": {
"my-local-package": "file:./repo/my-local-package"
}
Также существует yalc, который создает локальное хранилище для локальных пакетов. После добавления локального пакета в магазин вы можете использовать yalc для копирования локального пакета в другой пакет. Вы также можете использовать его для обновления локальных пакетов.