首页 > 解决方案 > 没有在 create-react-app 中获得生产版本

问题描述

我有一个使用create-react-app的项目。

我没有在开发模式下处理它(使用scripts/start)。在我的项目工作了几周后,我想部署到生产环境。

我运行了脚本/构建

这创建了一个如下所示的文件夹结构:

在此处输入图像描述

我假设index.html是所有这些的入口点,所以我运行了 index.html。

我得到的只是一个带有一些 404 错误的空白屏幕。

在此处输入图像描述

我完全不知道这是什么意思..!

我试图查看index.html文件,但它只包含混淆的 javascript。(create-react-app 似乎隐藏了可能有助于解决问题的所有内容)。

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <link rel="shortcut icon" href="/favicon.ico"/>
    <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/>
    <meta name="theme-color" content="#000000"/>
    <link rel="manifest" href="/manifest.json"/>
    <title>React App</title>
    <link href="/static/css/main.a5508311.chunk.css" rel="stylesheet">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script>!function (l) {
    function e(e) {
        for (var r, t, n = e[0], o = e[1], u = e[2], f = 0, i = []; f < n.length; f++) t = n[f], p[t] && i.push(p[t][0]), p[t] = 0;
        for (r in o) Object.prototype.hasOwnProperty.call(o, r) && (l[r] = o[r]);
        for (s && s(e); i.length;) i.shift()();
        return c.push.apply(c, u || []), a()
    }

如何让我的 create-react-app 从开发阶段进入生产阶段?

更新:

我决定更新我生成的 index.html 文件并放一个“。” 在我的道路前。

<script src="/static/js/1.e82eda2e.chunk.js"></script>

变成:

<script src="./static/js/1.e82eda2e.chunk.js"></script>

现在它起作用了(有点)。这是一个开箱即用的解决方案!

生成生产构建 index.html 时,如何防止我的路径在 create-react-app 中被弄乱?为什么它首先要这样做??!

更新 2:

在互联网上挖掘我发现你可以添加

  "homepage": "./",

我这样做了。

现在我的应用程序工作,但图像没有加载。我的反应路由也坏了。刷新链接不起作用....

标签: create-react-app

解决方案


最好的方法是使用 serve 在本地运行它:

  1. npm 安装服务 -g
  2. npm 运行构建
  3. 服务 -s 构建

这将创建一个在http://localhost:5000端口 5000 上运行的本地服务器


推荐阅读