webpack external 详解

作用:打包时将依赖独立出来,在运行时(runtime)再从外部获取这些扩展依赖,目的时解决打包文件过大的问题。
使用方法:
在这里插入图片描述
附上代码块

	config.set('externals', {
      vue: 'Vue',
      'vue-router': 'VueRouter',
      axios: 'axios',
      'ant-design-vue': 'antd',
      "moment": "moment",
      'vuex': 'Vuex',
      'jsoneditor': 'JSONEditor',
      'echarts': 'echarts'
    })

external 语法说明:
此处是一个key和value的形式,key是第三方依赖库的名称,
在这里插入图片描述
value 值可以是字符串,数组,对象,是第三方依赖打包后生成的js文件(引入的js静态文件或者cdn链接)执行后赋值给window的全局变量名称
全局变量名称如何去找,在node_modules的依赖包,如何找出全局变量名称,一般来说在umd文件中,找global 关键词,
在dist文件中,找exports 关键词,不行都找找
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

externals 配置了,index.html才可以引入插件的cdn,或者静态的插件js资源,且引入的cdn 的版本或者静态插件js版本,要和package.json以及package.lock.json保持一致才行
在这里插入图片描述

  <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.1.6/vue-router.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.18.1/axios.min.js"></script>
  <link href="https://cdn.bootcdn.net/ajax/libs/ant-design-vue/1.7.2/antd.min.css" rel="stylesheet">
  <script src="https://cdn.bootcdn.net/ajax/libs/ant-design-vue/1.7.2/antd.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/locale/zh-cn.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/vuex/3.1.2/vuex.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/jsoneditor/9.0.0/jsoneditor.min.js"></script>
  <link href="https://cdn.bootcdn.net/ajax/libs/jsoneditor/9.0.0/jsoneditor.min.css" rel="stylesheet">
  <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.9.0-rc.1/echarts.min.js"></script>

如何测试你找的indow的全局变量名称准不准,用浏览器打开引入之后的html文件,在控制台上输入window.找的名字,如果是undefined,就说明不对,继续找
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Webpack的代码分割功能是一种将应用程序代码分割成更小、更易于管理的块的方法。它有助于优化页面加载时间,因为只有在需要时才加载所需的代码块。下面是对Webpack代码分割的详细解释: 1. 动态导入:Webpack支持使用动态导入语法(例如`import()`)来实现代码分割。通过将代码拆分成多个模块,可以在需要时按需加载这些模块。 2. 入口点配置:Webpack允许你通过配置入口点来实现代码分割。通过将不同的模块或文件指定为入口点,Webpack将根据这些入口点创建不同的代码块。 3. SplitChunks插件:Webpack提供了一个名为`SplitChunksPlugin`的插件,用于自动将公共模块提取到单独的代码块中。这样可以避免重复加载相同的代码,并提高应用程序的性能。你可以根据自己的需求配置该插件。 4. 动态导入和SplitChunks的结合使用:最佳实践是将动态导入与SplitChunks插件结合使用,以便按需加载模块并提取公共模块。这样可以实现最小化的代码块和更好的性能。 5. 懒加载:懒加载是通过动态导入来实现的一种技术,它允许在需要时延迟加载模块。这对于优化页面加载时间和减少初始加载的代码量非常有帮助。 总结起来,Webpack的代码分割功能通过将应用程序代码拆分成更小的块,按需加载和提取公共模块,帮助提高页面加载性能和优化用户体验。你可以根据项目需求使用动态导入、配置入口点、SplitChunks插件和懒加载等技术来实现代码分割。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值