如何在<;脚本>;内的src文件中要求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
是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。
相关文章