Webpack 是一个流行的 JavaScript 模块打包工具,它可以将多个 JavaScript 文件及其依赖打包成一个或多个文件,以提高应用的加载速度和性能。在 Webpack 中引用外部 JavaScript 文件可以通过几种不同的方式实现,以下是一些基础概念和相关信息:
外部脚本(External Script):指的是那些不由 Webpack 打包,而是在 HTML 文件中直接通过 <script>
标签引入的 JavaScript 文件。
在 HTML 文件中使用 <script>
标签直接引入外部 JS 文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!-- 引入外部 JS 文件 -->
<script src="https://example.com/some-library.js"></script>
<script src="bundle.js"></script>
</body>
</html>
在 Webpack 配置文件中设置 externals
属性,告诉 Webpack 某些依赖不需要打包,而是在运行时从环境中获取:
module.exports = {
// ...
externals: {
'jquery': 'jQuery' // 假设 jQuery 已经通过 CDN 引入
},
// ...
};
然后在代码中可以像平常一样导入模块:
import $ from 'jquery';
在 HTML 文件中,需要确保 jQuery 库已经被引入:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="bundle.js"></script>
问题:外部脚本加载失败或顺序错误。
原因:可能是由于网络问题,或者脚本标签放置顺序不正确。
解决方法:
async
或 defer
属性控制脚本加载行为。externals
。假设我们有一个项目使用了 jQuery,并且想通过 CDN 引入它,而不是打包到最终的 bundle 中。
Webpack 配置 (webpack.config.js
):
module.exports = {
// ...
externals: {
jquery: 'jQuery'
},
// ...
};
JavaScript 文件 (app.js
):
import $ from 'jquery';
$(document).ready(function() {
$('body').append('<h1>Hello, World!</h1>');
});
HTML 文件 (index.html
):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="bundle.js"></script>
</body>
</html>
通过以上配置和代码,jQuery 将不会被 Webpack 打包,而是通过 CDN 引入,从而优化了应用的加载性能。
领取专属 10元无门槛券
手把手带您无忧上云