【问题标题】:npm install update git submodulenpm 安装更新 git 子模块
【发布时间】:2017-08-13 19:19:47
【问题描述】:
我有一个带有 git 子模块的 Node JS 库。
当我克隆我的 lib 的 git 存储库时,我必须执行 submodule update --init --recursive 这样的操作才能从子模块中提取实际内容。
在我发布 lib 并执行 npm install my-lib 后,发现它没有拉动 git 子模块。如何配置它以拉动 git 子模块?这有可能吗?
【问题讨论】:
标签:
node.js
git
npm
git-submodules
【解决方案1】:
我认为这是不可能的,因为子模块在 git 之外,只是一个简单的文件。
但是,您可以做的是仅在开发中使用子模块,编译您的库并将编译后的版本发布到包内的 dist/ 文件夹中。
然后只需将package.json 中的main 指向已编译的库脚本,您就可以将其包含在您的其他项目中。
【解决方案2】:
确实,npm i 没有安装 git 环境,但你可以显式地在 package.json 的脚本条目中添加:
"scripts": {
"preinstall": "git init && git submodule add -f YOUR_REPO_URL LOCAL_PATH"
}
编辑:但这不是最好的选择,因为您不会被安装来重新安装您的软件包。更喜欢简单的 git clone。