Npm pack 包含本地模块
Posted
技术标签:
【中文标题】Npm pack 包含本地模块【英文标题】:Npm pack to include local modules 【发布时间】:2019-09-11 04:06:33 【问题描述】:我有一些本地模块,我想将它们包含在我的包中以发送到服务器。由于这些本地包不在 npm 注册表中,因此它们需要是包的一部分。
我尝试了一些方法来使用 npm pack 将 node_modules 文件夹包含在包中,但似乎这根本不可能?
其次,我尝试在 package.json 文件的 bundledDepencies 中列出本地模块并使用 npm pack,但这也不包括本地模块,不无所谓;
"name": "dev",
"version": "1.0.0",
"main": "main.js",
"dependencies":
"local-module": "file:../../local-module"
,
"bundledDependencies": [
"local-module"
]
如何将这些本地模块包含在 dev 包中?
本地模块本身确实包含依赖项,不确定这是否会使事情变得更复杂?
【问题讨论】:
本地依赖在 GitHub 上吗? 我目前正在尝试做同样的事情,它似乎正在工作。一个问题是您需要在配置本地依赖项后运行npm install
,以便 npm 在您的 node_modules 文件夹中创建指向本地模块的链接。
【参考方案1】:
前段时间我遇到了类似的问题,一个好的简单的解决方案就是将你的本地模块放入私有 git 存储库(现在在 GitHub 上免费,thanks Microsoft?)
然后,在您的package.json
中,添加:
"dependencies" :
"name1" : "git://github.com/user/project.git#commit-ish",
"name2" : "git://github.com/user/project.git#commit-ish"
来源,npm docs
希望对你有所帮助?
【讨论】:
嘿 Alicia,我同意 Github 是这里最好的方法,我选择了这条路线。原来我必须将包上传到的服务器不支持 git.... :( 仍然很高兴在 Git 中设置它!【参考方案2】:还有yalc,它为本地包创建本地存储。将本地包添加到商店后,您可以使用 yalc 将本地包复制到另一个包中。您还可以使用它来更新本地包。
【讨论】:
【参考方案3】:我相信 Alicia 的方法是最干净的。但是对于遇到与我相同的问题的人,即服务器需要一个 tarball,但没有安装 git,我将我的本地包添加到项目中名为 repo 的单独文件夹中,并在 package.json 中将它们引用为;
"dependencies":
"my-local-package": "file:./repo/my-local-package"
【讨论】:
以上是关于Npm pack 包含本地模块的主要内容,如果未能解决你的问题,请参考以下文章
docker build 中的本地 npm 依赖“不包含 package.json 文件”,但使用 npm start 运行良好