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

2022-05-18 00:00:00 javascript require

我希望这一点很清楚,我需要导入一个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是JS环境提供的内置函数,支持几种不同类型的模块,因此如何将JS文件加载到浏览器中取决于它要使用的模块系统类型。

最有可能的情况是:

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

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

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

相关文章