NODE_ENV设为production时npm install失败原因咨询
问题原因解析
- npm生产模式的依赖过滤逻辑:当
NODE_ENV=production时,npm默认只会安装dependencies中的包,会跳过devDependencies。而husky作为代码质量工具,通常被放在devDependencies里,所以生产环境下npm不会安装它。 - prepare脚本的执行时机冲突:你的
package.json里的prepare脚本会在npm install完成后自动执行,但此时husky还没被安装(因属于dev依赖被跳过),所以执行husky install就会抛出sh: husky: command not found的错误。而development环境下npm会安装所有依赖(包括devDependencies),husky存在,脚本自然能正常运行。 - 可执行文件的存在前提:项目根目录
node_modules/.bin下的husky可执行文件,只有当husky包被成功安装后才会生成。生产模式下husky未被安装,这个路径里没有对应的可执行文件,系统自然找不到这个命令。
内容的提问来源于stack exchange,提问作者Bill Horvath
相关产品推荐
相关产品推荐

