首页 > 解决方案 > 为什么 Heroku 告诉我当我执行 heroku 推送时它在我的模块中找不到 package.json

问题描述

我从 react-coverflow 的一个分支创建了自己的 npm 包。它似乎在我的应用程序中以这种方式在本地运行良好:“npm install react-coverflow-mod”--save。

我可以在 VsCode 中使用“运行调试 (F5)”来运行我的应用程序,并在客户端文件夹上使用 npm start 来启动 React 前端。

然后我在客户端文件夹上做了一个 npm run build,它工作得很好。

当我执行 heroku push 时,每次都会失败并出现以下错误:


npm ERR! code ENOLOCAL
npm ERR! Could not install from "../../react-coverflow-mod" 
as it does not contain a package.json file.

1.我知道模块中有一个package.json,因为我可以通过“npm install react-coverflow-mod”安装它:https ://www.npmjs.com/package/react-coverflow-mod

2.安装的模块里面有一个package.json文件

3.我的github repo里面有一个package.json: https ://github.com/leroyvaughan/react-coverflow

我不确定如何解决这个问题。我是否需要 package.json 才能进入 /Dist 文件夹?Heroku 有什么问题。

标签: node.jsreactjsherokunpmmodule

解决方案


它看起来像 heroku 尝试从相对路径而不是发布的名称安装包。这将完美地解释为什么您可以在本地运行但不能在生产环境中运行。

打开您的项目并搜索日志中显示的确切字符串:"../../react-coverflow-mod"您应该能够快速找到它的位置。

如果您在 unix 系统上运行(不了解 windows),您可以使用 grep 进行搜索:

grep -rnw '/path/to/somewhere/' -e '../../react-coverflow-mod'

确保它包含您的根文件夹,其中包含package.json,并且我们可能明智地忽略 node_modules它总是很大的。


推荐阅读