如何在其他项目安装本地TypeScript包前自动完成编译
可行方案:使用npm的prepare生命周期钩子
你需要的钩子是官方原生支持的prepare,完全适配你的需求,不需要修改app侧的任何配置。
- 触发规则:
prepare会在以下场景自动执行:- 本地包自身执行
npm install时(和你之前用的preinstall效果一致) - 该包作为依赖被外部项目安装时(包括本地路径安装、Git源安装)
- 执行
npm publish发布该包之前
- 本地包自身执行
- 配置方法:直接修改lib包的
package.json脚本配置即可,示例如下:
{ "name": "你的TS包名", "scripts": { "build": "tsc", // 替换为你实际的TS编译命令 "prepare": "npm run build" // 新增这一行即可,可直接替换你之前配置的preinstall } }
- 注意事项:
- 配置完成后如果app侧之前已经安装过该本地包,建议先删除app目录下的
node_modules和package-lock.json(或对应包管理器的锁文件)后重新执行安装命令,避免缓存导致钩子未触发 - 该钩子对npm、yarn、pnpm等主流包管理器都兼容
- 配置完成后如果app侧之前已经安装过该本地包,建议先删除app目录下的
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

