【问题标题】:Trying to deploy a create-react-app project to Netlify尝试将 create-react-app 项目部署到 Netlify
【发布时间】:2021-05-12 06:18:38
【问题描述】:

我当前的项目在 Netlify 平台上构建时遇到了问题。我能够很好地在本地构建我的应用程序并通过 gh-pages 托管它,但是当我尝试构建相同的应用程序时,我遇到了这个错误。

Netlify Deploy Log

11:10:03 PM: Failed to compile.
11:10:03 PM: 
11:10:03 PM: ./src/pages/Mortgage.js
11:10:03 PM: Cannot find file '../hooks/UseWindowSize.js' in './src/pages'.

Current Folder Structure

src
--hooks
----UseWindowSize.js
--pages
----Home.js
----Mortgage.js

知道可能是什么问题吗?

【问题讨论】:

  • 您没有在开发机器上构建然后将其推送到 Netlify 是否有特定原因?根据情况可能会更容易。
  • 这是我第一次使用 Netlify,我有兴趣在 git repo 更改时使用他们的自动部署,我将研究直接上传构建文件夹。虽然我想了解为什么它一开始就不起作用。
  • 你能在这里分享回购的链接吗(如果它是公开的)?这将有助于调试。 @Sirivs
  • 根据错误消息,一个可能的问题是文件结构的路径不同,具体取决于您运行构建命令的目录,Netlify 更改了该目录。也许使用 node 的 path.join 和 __dirname digitalocean.com/community/tutorials/nodejs-how-to-use__dirname

标签: javascript reactjs directory netlify


【解决方案1】:

这就是我设法让它工作的方法。

我通过Github 存储库链接它在Netlify 上添加了该站点。然后在 Netlify 里面,我做了流动:

  1. 单击Sites 菜单链接并选择您要部署的站点
  2. 要访问Settings,请单击:
    • Site Settings 按钮 - 位于菜单下方的第一个块/小部件中
    • DeploysSite Overview 旁边的菜单中,然后单击 Deploy setting 按钮 - 位于菜单下方的第一个块/小部件中
  3. 在第一个块/小部件下方单击链接Build & deploy - 位于左侧导航旁边
  4. Build settings 小部件块中,单击Edit settings 按钮。
    • Base directory 更改为./
    • Build command 更改为npm run build
    • Publish directory 更改为./build
  5. 向下滚动到Environment variables并添加键PRODUCTION,将PRODUCTION的值设置为true

重试构建以查看配置是否有效。

旁注:这是fresh create react app react install,还没有第 3 方库。

快乐编码 =)

专业提示 - 在项目的根目录中创建一个 netlify.toml 文件并添加以下内容:

# Production context:
# All deploys from the main repository branch
# will inherit these settings.
[context.production]
  command = "npm run build"
  [context.production.environment]
    PRODUCTION = "true"

我注意到使用布尔值作为字符串是可行的,但如果你像往常一样使用它,构建会中断

【讨论】:

    【解决方案2】:

    说实话,将 Vercel 与 React 结合使用要容易得多,而且效果也更好。 将项目推送到存储库,访问 vercel 的站点,使用 Github 登录,然后选择您的存储库,它会为您完成 95% 的工作。 Netlify 在 React-router 方面也存在一些问题,因此 Vercel 显然是赢家。

    【讨论】:

    • 这个问题是针对Netlify提出的。虽然使用像Vercel 这样的替代方案肯定会起作用,但如果您由于某些限制而无法更改设计架构怎么办。因为如果 3rd 方包是一个问题,那么你最好找到可以工作的包,或者你创建一个简单的流程来使用全局状态提供者和消费者来路由你的应用程序 - 创建反应应用程序有帮助解决“基本功能”的文档,当你需要处理路由,Netlify 有包含路由的模板解决方案,因此您可以使用它来了解如何实现这一点。
    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2021-07-03
    • 2020-04-28
    • 1970-01-01
    • 2019-06-05
    • 2018-09-06
    相关资源
    最近更新 更多