欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解Webpack如何引入CDN链接来优化编译后的体积

程序员文章站 2022-06-03 12:53:20
背景 在 vue 项目中,引入到工程中的所有 js 文件,编译时都会被打包进 vendor.js,也就导致了 vendor.js 文件体积变得相当臃肿,一定程度上影响...

背景

在 vue 项目中,引入到工程中的所有 js 文件,编译时都会被打包进 vendor.js,也就导致了 vendor.js 文件体积变得相当臃肿,一定程度上影响着页面的渲染。为了减少编译后的体积,提高页面渲染速度,我们可以通过引入 cdn 链接把库分离,多线程异步 js 库,从而达到加速渲染的目的。那么我们如何做呢?

步骤

1.引入cdn链接

在项目的 index.html 中,常规方式引入 cdn 链接,此处以 vue 和 element-ui 为例:

<body>
 <div id="app"></div>
 <!-- cdn方式引入vue -->
 <script src="https://unpkg.com/vue/dist/vue.js"></script>
 <!-- cdn方式引入element-ui -->
 <script src="https://unpkg.com/element-ui@2.8.2/lib/index.js"></script>
</body>

2.添加externals属性

vue-cli 2

在项目的 build/webpack.base.conf.js 中,在下面合适位置添加 externals 相关语句,在 entry 后面加入即可:

module.exports = {
 context: path.resolve(__dirname, '../'),
 entry: {
 function: './src/main.js'
 },
 externals:{
 'vue': 'vue',
 'element-ui': 'elementui'
 }
 ...
}

vue-cli 3

在项目根目录的 vue.config.js 中,将 configurewebpack 配置代码块添加进入即可:

module.exports = {
 configurewebpack:{
 externals: {
  'vue': 'vue',
  'element-ui': 'elementui'
 }
 }
}

注意:在上述代码中,'vue': 'vue' 对应形式为 key : value,其中 key 为项目中引用的名称,而 value 是资源本身定义的名称(不可改),正常情况下我们可以参照 src/main.js 进行查看:

import vue from 'vue'
import elementui from 'element-ui'
//打开src/main.js查阅以上两行代码,其前面作为value,后面作为key。

3.注释import及vue.use(xxx)

在项目的 src/main.js 中,注释掉以下语句:

// import vue from 'vue'
// import elementui from 'element-ui'
// import 'element-ui/lib/theme-chalk/index.css'
import app from './app'

vue.config.productiontip = false

// vue.use(elementui)

注:使用 eslint 规则的项目请不要注释 import 及 vue.use,除非你不使用那烦人的 eslint。

完成以上步骤后就可以开始执行 npm run build,你会发现编译后的 vendor.js 从几百k降到几十k,也就意味着优化体积已经成效。 另外,有好多网友先前为了减少体积就已经配置了 按需引入,如果引入 cdn 之后,记得把按需引入的配置去掉哦,因为引入 cdn 之后就不存在按需引入这种说法啦!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。