【发布时间】:2016-05-31 15:44:38
【问题描述】:
当有人安装 my-package 时,我想安装一个 pre-commit git 挂钩(对代码进行 lints)。
我尝试添加一个postinstall 脚本:
"scripts": {
"postinstall": "./scripts/install-git-hooks"
}
这很好用。当有人运行npm install 时,他们会安装pre-commit 挂钩。
但是,如果another-package 依赖于my-package,则为another-package 运行npm install 也会运行postinstall 脚本,这是不希望的。
避免这种不良影响的最干净的方法是什么?
【问题讨论】:
-
这看起来像是一个 XY 问题。您在询问 Y,但要获得对大局有用的答案,您应该向我们提供有关 X 的信息。为什么您的包首先要安装 git hooks?
-
@Louis 我想强制用户在提交之前对他们的代码进行 lint。我可以引导用户在运行
npm install后运行npm run install-git-hooks,但我想自动执行此操作。 -
公平地说,大多数 npm 包都有一些需要在项目上运行的安装后例程,你是否手动执行。打字,jspm,茉莉花......等等等等。
标签: node.js git npm githooks npm-install