【问题标题】:Why are there multiple script tags after building NextJS?为什么构建 NextJS 后会有多个 script 标签?
【发布时间】:2021-08-03 03:15:10
【问题描述】:

我跑了next build,然后是next start。它仍然一次渲染多个 JS 文件,而不是单个入口点。

这里有什么我遗漏的吗?文档看起来好像这就是所需要的一切

【问题讨论】:

  • 您还期待什么?块是代码拆分的结果。
  • 当我使用 webpack 时,我通常有一个入口文件,它会处理它,或者我是这么认为的?
  • 其次,我在<Head> 中的<script src="/scripts/myfile.js" /> 没有被分组到任何_next/static/ 文件中
  • 不会被分组。它将作为一个简单的 JS 文件发出,没有任何优化。如果您希望将其分组,请将其“导入”您的代码本身。 Ramakay 的回答是正确的。

标签: javascript next.js


【解决方案1】:

您看到的文件是将 NextJS 代码拆分为功能代码和框架代码,您可以在此处阅读更多信息

https://nextjs.org/blog/next-9-2#improved-code-splitting-strategy

我在你的脑海中看到一个关于 <script 文件的评论,Next 将不理会它,因为它只是一个正在打印的标签 - 如果你需要 Next 提供你自己的 outside JS 文件, 放在 public 目录中。

【讨论】:

  • +1。除了该链接中提到的文件之外,还有构建和 SSG 清单,以及对应于 pages/_app.js 的 JS 文件——它会在创建基础时出现在每个非 API 路由中。
  • @Ramakay 现在很有意义,但是当我在<Head> 中将<script src="/scripts/myscript.js" /> 更改为<Script src="/scripts/myscript.js" /> 时,我得到了Cannot read property 'tagName' of nullscriptspublic 中的一个文件夹
  • 也许,因为你有 <Script 而不是 <script ? - 如果你有一个示例代码框或类似的东西会有所帮助。
  • @DaveStein <Script> 应保留在 <Head> 之外。 Ref: nextjs.org/docs/basic-features/script -- "使用next/script,您不再需要在next/head 中包装脚本。"
  • 好的,我会将此答案标记为对我的问题的正确答案,但我现在有更多问题:)
猜你喜欢
  • 2011-09-01
  • 2017-09-23
  • 2015-12-10
  • 2014-10-11
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多