尝试部署到Heroku时找不到文件(在本地工作)

时间:2019-01-08 06:03:31

标签: reactjs heroku deployment module

我正在尝试将我的应用程序部署到Heroku,它可以在本地运行,但在线上没有运气。我删除并重新安装了节点模块。

我还有另一个与此完全相关的错误(文件找不到相同的名称等),我改变了相对路径,以解决此问题,但没有任何结果

错误是:

找不到文件'./Components/SearchBar/SearchBar'

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import SearchBar from './Components/SearchBar/SearchBar'
import BusinessList from './Components/BusinessList/BusinessList'
import Business from './Components/Business/Business'
import Yelp from './Components/Util/Yelp'

我希望不会因为简单的错误而出错,我已经遍历了文件名和文件夹名,但这根本没有道理。

PS,我认为它可能是未连接的,我的const yelpApiKey = process.env.yelpApiKey可以让我的heroku连接到我的API密钥(在我的帐户中键入)

FILESTRUCTURE

5 个答案:

答案 0 :(得分:2)

谢谢@Jason提出这个问题,感谢@Rakesh回答。

我在Heroku上部署了 create-react-app 项目,然后在构建项目失败时遇到了类似的错误。错误是 routes.js 无法导入 signup.js

  

Heroku日志

-----> Node.js app detected

-----> Creating runtime environment

       NPM_CONFIG_LOGLEVEL=error
       NODE_ENV=production
       NODE_MODULES_CACHE=false
       NODE_VERBOSE=false

-----> Installing binaries
       engines.node (package.json):  10.16.3
       engines.npm (package.json):   unspecified (use default)

       Resolving node version 10.16.3...
       Downloading and installing node 10.16.3...
       Using default npm version: 6.9.0

-----> Restoring cache
       Caching has been disabled because NODE_MODULES_CACHE=false

-----> Installing dependencies
       Installing node modules (package.json + package-lock)

       > core-js@2.6.9 postinstall /tmp/build_5d506b6dfc93b7f4b6575e02cc682130/node_modules/babel-runtime/node_modules/core-js
       > node scripts/postinstall || echo "ignore"


       > core-js@3.2.1 postinstall /tmp/build_5d506b6dfc93b7f4b6575e02cc682130/node_modules/core-js
       > node scripts/postinstall || echo "ignore"

       added 1507 packages from 719 contributors and audited 905071 packages in 35.746s
       found 0 vulnerabilities


-----> Build
       Running build

       > chat-app@0.1.0 build /tmp/build_5d506b6dfc93b7f4b6575e02cc682130
       > react-scripts build

       Creating an optimized production build...
       Failed to compile.

       ./src/routes.js                                         // my beautiful error here
       Cannot find file './Components/User/signup/signup.js' in './src'.   


npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! chat-app@0.1.0 build: `react-scripts build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the chat-app@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/npmcache.ynm0W/_logs/2019-09-30T15_24_32_571Z-debug.log
-----> Build failed

       We're sorry this build is failing! You can troubleshoot common issues here:
       https://devcenter.heroku.com/articles/troubleshooting-node-deploys

       If you're stuck, please submit a ticket so we can help:
       https://help.heroku.com/

       Love,
       Heroku

 !     Push rejected, failed to compile Node.js app.
 !     Push failed

解决方案

Heroku在Linux服务器上部署项目,这意味着如果您出错将导致构建失败,则区分大小写。我建议在命名文件和目录时坚持小写字母。

my project structure

|root
|src
|  componets
|     user
|       signup
|routes
|index.js

或者,

纠正错误后,我仍然遇到相同的错误。所以为什么? 我没有注意到Git不会推动更改。当您仅重命名目录时,即使您执行 git add git commit git push Git有时也不会考虑更改。我建议更改后转到网站进行验证。

最后,

部署到Heroku时,请仅部署基础分支。例如 Master develop 。我意识到每次部署功能分支时,Heroku都会自动检测到我的基础分支,该分支是 develop

答案 1 :(得分:0)

我发现您的代码有2个问题:

  1. 导入路径区分大小写(对于某些环境)。而且您使用的是“ C 组件”而不是“ c 组件”
  2. 在index.js中导入“ App”是错误的。使用以下内容

    import App from './App';
    

答案 2 :(得分:0)

我尝试了以上所有建议,但没有一个对我有用。最终,我所做的是删除抱怨为heroku丢失的文件,并用一个虚拟组件替换了它。之后,签入我对heroku的更改。现在一切都应该成功部署。

最后,我可以将原来的虚拟组件替换回原来的虚拟组件,然后再次检入heroku和hallelujah,它起作用了!!!!

希望我的解决方法可以节省某人的时间:)

谢谢

答案 3 :(得分:0)

就我而言,我在本地重命名了文件,但是当我将其推送到github时,它并没有反映在那里。所以我删除了该文件,并制作了具有相同内容的新文件,并且可以正常工作!

答案 4 :(得分:0)

Heroku 上的这个问题通常是由于您将组件重命名的事实,例如将 MyComponent 重命名为 Mycomponent,并且 git cache 和 heroku build cache 都可能导致该问题。解决方案是这样的:Failed to compile: Cannot find file './containers/App/App' in './src' 并清理 heroku 构建缓存以确保安全: https://help.heroku.com/18PI5RSY/how-do-i-clear-the-build-cache