如何在 <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。
我希望这是清楚的,我需要在 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。