【问题标题】:react-scripts build then serve is serving html, not the main.js filereact-scripts build then serve 提供 html,而不是 main.js 文件
【发布时间】:2018-05-07 23:57:29
【问题描述】:

我正在使用react-scripts 并成功运行npm run build 以生成build 文件夹。

然后我通过运行 serve -s build 使用 serve npm 包在本地提供它。

serve 然后在 5000 端口上运行,这很好。

当我访问localhost:5000 的页面时,该页面停止运行,控制台中出现以下错误main.975cb3de.js:1 Uncaught SyntaxError: Unexpected token <

我在控制台中打开 main.975cb3de.js 文件,它正在尝试提供 index.html 文件。

如果我清空浏览器缓存并重新加载页面,则加载正常。每次我运行构建时都会发生这种情况。

我怀疑serve 库中有配置但不太确定。

关于它为什么第一次尝试提供 HTML 以及如何解决这个问题有什么想法吗?

【问题讨论】:

  • 显然您的代码某处存在语法错误,请在构建您的应用之前尝试在开发环境中查找任何问题。
  • @GiovanniKleinCampigoto 我不相信有语法错误。当我第一次运行它时,它只会给出这个错误。如果我使用react-scripts start 运行一切正常,但它不会从构建目录运行,这让我认为这不是语法错误。
  • 如果你删除 build 文件夹,然后再次运行 build 命令会怎样?
  • 还是同样的问题。 /build 中的 main.js 文件试图为 index.html 文件提供服务,这很奇怪。只有在构建后第一次点击页面时,一旦用户刷新它就可以了。这发生在多台计算机上。
  • 也许您应该尝试使用 yarn 构建您的应用程序,推荐用于 CRA 应用程序:yarnpkg.com

标签: javascript reactjs npm serve react-scripts


【解决方案1】:

我能够通过将serve 包更新到版本6.5.6 在运行服务时使用--cache 标志来解决此问题。

  1. npm update -g serve

事实证明,当使用 -s 标志与 serve 时,默认缓存为 1 天。我不得不禁用这个缓存,这解决了问题。

  1. serve -s ./build --cache=-1

第二个命令是解决问题的关键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2021-04-21
    • 2022-01-11
    • 2020-09-20
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多