如何在 <script> 内的 src 文件中要求 js 文件?

how to require js file in a src file inside <script>?

我希望这是清楚的,我需要在 HTML 文件中导入一个 JS 文件。所以我正在使用这样的 src 属性:

<script src="my/js/file/1.js">
<!-- Some JS script here -->
</script>

但是有一件事...在我的 JS 文件第 1 行中,有一个 require("another/file.js")... 所以我的浏览器控制台出现错误:require is not defined。如何解决?

编辑

我会尽量说得更清楚:

我有 3 个文件,1 个 HTML 和 2 个 JS

上面的脚本标签在我的 html 文件中。 在 src 文件中,我需要使用 require("my/js/file/2.js" 导入第二个 JS 文件 如果我不使用 src 属性

,它就可以工作

但是当我添加 src 属性时,我在控制台中收到一条错误消息

这可能是因为 require() 不是标准 JavaScript API 的一部分。您的代码可能正在使用 Nodejs,这就是可能使用 require() 的地方。此外,为了选择 src 文件,您可能还想包含 type<script type="text/javascript">.

require 是 JS 环境提供的内置函数,支持几种不同类型的模块,因此如何将 JS 文件加载到浏览器中取决于它编写的模块系统类型使用。

最可能的情况是:

  • 它是一个 AMD 模块(非常 不太可能在 2021 年),在这种情况下,您可以使用 RequireJS
  • 加载它
  • 它是一个依赖 Node.js 特定 API 的 CommonJS 模块(在这种情况下,它不能在浏览器中 运行 并在浏览器中与其交互,您需要构建将其转换为 Web 服务并向其发出 HTTP 请求(例如通过 Ajax))。一些依赖于 Node.js 特定 API 的东西包括:
    • 向未授予浏览器 JS 使用 CORS 访问权限的网站发出 HTTP 请求
    • 非 HTTP 网络请求(如直接访问 MySQL 数据库)
    • 从表示为字符串的文件路径中读取文件(或对其执行任何操作)(与从 <input type="file"> 中读取文件相反)
    • 生成其他进程
  • 它是一个不依赖于 Node.js 特定 API 的 CommonJS 模块,您可以使用 Webpack or Parcel 等捆绑工具在浏览器中将其转换为 运行。

在您开始尝试实施这些解决方案之一之前找出这些选项中的哪一个(所有这些都将花费一些您不希望的时间和精力)浪费)。

阅读模块的文档通常会告诉您。如果您从 NPM 获得它并且它没有提到与浏览器兼容,那么它可能只是 Node.js。