node.js - 我们的团队在尝试使用 Heroku CLI 部署到生产环境时遇到错误
问题描述
我们一直在尝试解决此问题,但没有找到可行的解决方案,因此我们想在此处分享部分控制台输出:
remote: > husky install
remote:
remote: sh: 1: husky: not found
remote: npm ERR! code 127
remote: npm ERR! path /tmp/build_157848d1
remote: npm ERR! command failed
remote: npm ERR! command sh -c husky install
remote:
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR! /tmp/npmcache.seRIW/_logs/2021-09-25T00_40_22_168Z-debug.log
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! syscall spawn
remote: npm ERR! file sh
remote: npm ERR! errno ENOENT
remote: npm ERR! test@1.0.0 heroku-prebuild: `npm i -f`
remote: npm ERR! spawn ENOENT
remote: npm ERR!
remote: npm ERR! Failed at the test@1.0.0 heroku-prebuild script.
remote: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
remote:
任何额外的见解表示赞赏。
解决方案
对我来说,问题是以下组合:
husky
在我的devDependencies
钥匙下package.json
。- 服务器具有以下环境参数:
NODE_ENV=production
,这导致npm install
仅在dependencies
、 忽略下安装所有内容devDependencies
,因此husky
未安装。 - 在 中的
scripts
键下package.json
,我有以下键值对:"prepare": "husky install"
. 脚本在prepare
成功后自动运行npm install
。您描述的问题是因为husky
未安装而发生的,因此prepare
脚本失败。
解决方案:
- 也安装
devDependencies
。一种方法是:npm install --include dev
. husky
从移动devDependencies
到dependencies
。
推荐阅读
- python - 带有字典的嵌套列表中的 Python 元素
- android - /FIXED\ Android - TextView 不显示在另一个 TextView 下方
- python - 获取 lxml 节点中的所有文本
- python - 如何在 Google Cloud Vision API 上同时调用“标签检测”和“安全搜索检测”
- php - 在stream_get_contents中使用curl保存的cookie
- python - 链接用户输入以运行集合函数时出现“无效的语法错误”(Python)
- sql-server - T-SQL 视图问题
- javascript - isNaN() 对任何以数字开头的东西都返回 false,即使它包含字母
- python - SQLAlchemy:按 JSON 列中的键过滤
- json - Json 依赖于被忽略