如何正确创建和部署React应用程序?

3
我曾经在一个ReactJS项目上工作,使用npx create-react-app app-name命令创建了该项目。我还在项目中使用了一些图片。
我的问题是,在运行npm run build后,文件路径无法正常工作。我的意思是,它们不再是像这样:/img/image-name.jpg,而变成了:
<link href="./css/main.493343f3.chunk.css" rel="stylesheet">

结果如下所示:
<link href="/static/css/main.493343f3.chunk.css" rel="stylesheet">

如果我不必手动重新编写文件路径,那会很方便,但没关系,我可以做到。

更大的问题是,正如我之前提到的,我的项目中使用了IMG标签。

我用于图像的代码:

import pic_1 from './pics/pic_1.jpg';

<img src={pic_1} alt=""/> 

编译后(运行npm run build),它没有起作用。我认为是文件路径不正确。

"static/media/placeholder.3a8380d3.jpg"

不是

"./media/placeholder.3a8380d3.jpg"

我手动修复了它,但仍然无法工作。

我应该怎样做才能不同?

我应该如何正确编译代码?

感谢您阅读我的问题!:)


https://create-react-app.dev/docs/deployment - Dzenis H.
1
谢谢!我确实读了它,但由于我的英语和编程知识有限,需要帮助理解。请帮帮我。 - Laczkó Örs
1
create-react-app 使用 BabelWebpack -> 它们负责你的开发工作流程。在创建生产构建之后,它会优化你的代码并将其放入 build 文件夹中。注意:看一下它,它会大大改变文件夹结构,这就是为什么你会得到不同的路径。但是使用 create-react-app 一切都应该可以直接运行。希望这有意义。干杯。 - Dzenis H.
2个回答

4
让我们尝试将您的应用程序部署到Heroku:
  • 步骤1:创建一个React应用

    npx create-react-app hello-world
    cd hello-world

  • 步骤2:创建一个Express JS服务器来提供您的生产构建

在您的代码库中,创建一个名为server.js的文件,并插入以下代码:

const express = require('express');
const path = require('path');
const port = process.env.PORT || 8080;
const app = express();

app.get('/*', function (req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

app.listen(port);

++在您的package.json文件中,将 start 脚本更改为以下内容: start: "node server.js"

  • 第三步:创建 React 生产构建

Heroku 在您部署时自动运行构建命令,但最好在部署之前本地测试生产构建(尤其是第一次)。 您可以通过在终端中运行以下命令来在本地创建生产构建:

npm run build

  • 第五步:部署到 Heroku -[您可以通过两种方式完成]:
    a) 在官网上转到您的 Heroku 帐户并手动创建您的应用程序。 b) 或者只需运行 heroku create yourAppName

    接下来您需要执行以下操作:

使用 Git 完成此操作,因此您需要执行以下操作:

git init // to initialize a Git repo

git add . // to add the new files

git commit -m "Heroku deploy" // In order to commit your changes

// Now goes the comment to connect your local app to the one created on the Heroku

heroku git:remote -a nameOfYourApp // <- the one created on their website

git push heroku master // to push it to heroku master repo 

Now you can run `heroku open` to see your app in the browser

参考链接

b) 使用零配置方法。使用此方法,您可以跳过express服务器(所有操作都已为您完成)->只需输入以下命令:

npm install -g create-react-app
create-react-app my-app
cd my-app
git init
heroku create -b https://github.com/mars/create-react-app-buildpack.git
git add .
git commit -m "react-create-app on Heroku"
git push heroku master
heroku open

参考链接


更新:
如果你使用 firebase,这里是你需要执行的步骤:

  • 确保你已经安装了 firebase 工具 npm i -g firebase-tools
  • 通过运行 npm run build 创建应用程序的生产 build

  • 访问https://console.firebase.google.com 并创建你的"empathy" 应用程序

  • 在你的项目中运行 firebase init 并提供以下答案:

  • 你准备好继续了吗?-> YES

  • 从列表中选择 hosting
  • 选择之前在 firebase 控制台 上创建的应用程序

  • 你想要将哪个文件夹作为你的public 文件夹 -> build
  • 你想要配置单页面应用程序吗?-> YES
  • 你想要覆盖现有的 index.html 文件吗?-> NO

之后只需要运行 firebase deploy


1
非常感谢!您让它更加清晰明了!我正在使用Firebase作为我的网站托管平台。现在我(有点)理解它是如何工作的。 :) - Laczkó Örs
1
@BudaÖrs 很高兴我能帮到你。请查看我所做的更新,其中包括将您的应用部署到 firebase 的说明。祝一切顺利。 - Dzenis H.
1
非常感谢!你真的帮了很多忙!:)) - Laczkó Örs

1

首先,确保您的项目真正运行 如果找到客户端和服务器,请通过make build将其构建为应用程序 然后将项目推送到GitHub 转到文件夹项目的位置

git init
git add . 
git commit -m "deploying static--err, dynamic site to heroku"
git remote add origin remote repository URL
git push origin master

安装 Heroku-CLI 工具,然后登录。保留 HTML 标记不做解释。
heroku login

请输入您的Heroku凭据: 电子邮件: 密码:
heroku apps:create nameproject

git push heroku master
git add .
git commit -m "A helpful message"
git push heroku master

告诉我它是否成功了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接