运行npm命令时如何跳过对应pre、post前后置钩子命令?
如何单独运行npm脚本不触发pre/post前后置钩子
这个需求完全可以实现,不需要修改项目package.json里的原有脚本配置,直接在执行命令时追加npm原生支持的参数即可。
npm 提供了--ignore-scripts参数,作用是禁用本次命令执行过程中自动触发的所有生命周期关联脚本,自然也包括目标命令对应的pre/post前缀钩子。
举个实际例子,常规执行构建的命令是:
npm run build
如果不想触发配置好的prebuild和postbuild脚本,只要把命令改成下面的写法即可:
npm run build --ignore-scripts
补充说明
- 这个参数是单次生效的,只会影响当前这一条命令的执行逻辑,不会改动项目任何配置。后续你正常执行
npm run build的时候,还是会按照原有规则自动触发前后置钩子,用完不需要做任何回滚操作,非常适合临时调试、单独跑脚本的场景。 - 注意
--ignore-scripts是传给npm CLI本身的参数,不要写在--分隔符后面,否则会被当成参数传给build对应的业务脚本,无法起到跳过钩子的作用。 - 如果你不想加参数,也可以直接找到
package.json里build命令对应的实际执行语句,比如build配置的是vite build,你直接在终端执行npx vite build,同样不会触发npm的前后置钩子,只是这种方式需要手动查找对应脚本内容,不如加参数便捷。
内容的提问来源于stack exchange,提问作者myol
相关产品推荐
相关产品推荐

