【问题标题】:what is the use of react-scripts build?react-scripts build 有什么用?
【发布时间】:2022-01-11 18:05:53
【问题描述】:

我刚开始使用 react 有点困惑,我知道要运行服务器我们输入命令:

npm run start(反应脚本开始)

但是npm run build(react-scripts build)有什么用呢?
来自this answer 我知道它用于减小 Web 应用程序的大小,但我该如何使用 build/ 文件夹?

【问题讨论】:

  • 服务 build/,使用网络服务器。 npm run start 是一个开发服务器,不用于生产。阅读the docs
  • @jonrsharpe 例如,如果我部署到 heroku 上,我只需要将我的 build/ 文件夹上传到上面吗?
  • Heroku 使用 buildpacks,你不只是直接上传文件。因此,您将使用两个构建包 - Node buildpack 获取源并创建构建,然后 static buildpack 提供它。
  • @jonrsharpe 啊谢谢你澄清了我的疑问

标签: javascript reactjs


【解决方案1】:

npm run start 可能根本不应该在生产中使用。只是为了本地开发。

当您使用npm run build 生成构建文件夹时,这应该在生产中使用,但不知何故您必须将其实际提供给浏览器。

如果你有一个没有任何 api 调用的 react 应用程序......那么你可以通过双击 index.html 在本地运行它。您将看到它在本地文件系统提供的浏览器中运行。但是,我认为它不会让你获取,所以如果你有任何获取,你的项目可能只是看起来很糟糕。

查看它在本地工作的一些选项是:


如果你安装了python,那么有一个内置的静态网络服务器:

cd build
python3 -m http.server 8888

然后使用浏览器访问 http://localhost:8888/index.html。这就是我一直这样做的方式,因为我不需要安装任何软件包。


如果你没有 python,想用 node 做,那么你可以用这个 npm 包看它,例如:https://www.npmjs.com/package/http-server

npm install --save http-server

如果将此脚本添加到 package.json

"prod-server": "http-server build -p 8888",

然后在构建之后你可以像这样启动你的节点服务器

npm run prod-server

然后您可以在浏览器中打开 http://localhost:8888/index.html 并查看该目录中的内容


您可以做的另一件事是在本地查看生产版本,并了解实际部署时会发生什么情况,即按照设置 apache http 服务器的说明进行操作。您可能已经有一个,或者查找谁来设置本地“LAMP”堆栈,即使您只需要其中的“A”部分。然后只需将 build 目录的内容拖到您的 apache http 公共目录中,然后像打开任何其他文件一样打开它。


要公开展示它,因为它是静态的,你也可以将它部署到 github 页面,或“cdn”,或任何其他可以提供静态文件的 web 主机,因为那里的文件只需要执行在您的浏览器中

【讨论】:

  • 感谢您提供如此详细而优美的解释,但是我 npm install -g serveserve -s build 来测试构建/它更简单:)
  • 哦,是的 http-serve 或者我猜想两者都可以工作,而且,是的,您可以全局安装 node.js 静态网络服务器,而不是在您的项目中。我错过了这两个选项。
猜你喜欢
  • 2020-09-20
  • 2020-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-19
  • 2019-02-27
  • 2018-11-16
  • 2020-09-12
相关资源
最近更新 更多