如何从GitHub仓库安装依赖构建产物的npm二进制包?
从GitHub安装依赖构建产物的二进制包解决方案
方案一:替换为prepare脚本触发构建
npm 和 yarn 在从 Git 仓库安装包时,不会执行prepublish脚本,但会自动执行prepare脚本。修改项目的package.json,将构建逻辑绑定到prepare:
"scripts": { "prepare": "yarn build", "prebuild": "rimraf -rf build", "build": "tsc --project ./tsconfig.build.json", "test": "NODE_V8_COVERAGE=./coverage ava", "posttest": "c8 --all report -x example -x build -x node_modules --temp-directory=./coverage/ --report-dir=./coverage -r json" }
修改后,无论是发布到npm还是直接从GitHub安装,都会自动完成构建,生成bin字段指向的./build/cmd/oatyp.js文件,全局安装后即可正常调用oatyp命令。
方案二:安装时手动触发构建
如果无法修改项目的package.json,可以在安装命令后手动进入全局包目录执行构建:
yarn global install https://github.com/[用户名]/[仓库名].git && cd $(yarn global dir)/node_modules/[仓库名] && yarn build
这个命令会先完成安装,再定位到全局包的安装目录,执行构建脚本生成所需的二进制文件。
方案三:排查构建产物提交问题(针对你之前的尝试)
如果提交构建产物后仍无法生效,检查以下细节:
- 确认
build目录没有被.gitignore排除,打开项目根目录的.gitignore,移除任何包含build的规则; - 执行
git add build/将构建产物全部加入Git追踪,再提交并推送到目标分支; - 安装时明确指定包含构建产物的分支:
yarn global install https://github.com/[用户名]/[仓库名].git#[构建产物分支名]
内容的提问来源于stack exchange,提问作者Xen_mar
相关产品推荐
相关产品推荐

