vue 通过externals 加载外部CDN资源,减少打包体积 - 前端笔记-1.在vue.config.js里面的写入如下配置 使用externals代码在vue.config.js里面 设置打包排除项 ...

学习笔记

点滴记忆
回忆过往
首页>> web前端 >>vue 通过externals 加载外部CDN资源,减少打包体积 - 前端笔记
1.在vue.config.js 里面的写入如下配置
    使用externals 代码 在vue.config.js里面  设置打包排除项
    使用此配置项   config.plugin('html').tap(args => { isProd args[0].isProd = true return args })  做数据的真假,对public/index.html的 cdn外链   开发模式和发布模式的 引入和隐藏  
    注意:开发模式  的依赖文件 全部已经下载好了,在本地,如何public/index.html 里面还有cdn外链  文件就会发生 错误
              发布模式  为了减少自身代码量 ,会引入外链cdn资源    

          所有要对  cdn外链资源的引入 和不引入  做一个判断
    
    module.exports = {
  chainWebpackconfig => {
    //发布模式
    config.when(process.env.NODE_ENV === 'production'config => {
      //entry找到默认的打包入口,调用clear则是删除默认的打包入口
      //add添加新的打包入口
      config.entry('app').clear().add('./src/main-prod.js')

      //使用插件
      config.plugin('html').tap(args => {
        //添加参数isProd
        args[0].isProd = true
        return args
      })
      //使用externals设置排除项
      config.set('externals', {
        vue'Vue',
        'vue-router''VueRouter',
        axios'axios',
        moment'moment',
        lodash'_',
        echarts'echarts',
        nprogress'NProgress',
        'vue-quill-editor''VueQuillEditor',
        // ElementUI: 'ElementUI '

      })
    })
    //开发模式
    config.when(process.env.NODE_ENV === 'development'config => {
      config.entry('app').clear().add('./src/main-dev.js')
      //使用插件
      config.plugin('html').tap(args => {
        //添加参数isProd
        args[0].isProd = false
        return args
      })
    })
  }
}



2.引入  排除项相关的js文件和css样式 , (引入到根目录的public/index.htm添加外部cdn引入代码)   
     使用htmlWebpackPlugin.options.isProd  获取 vue.config.js文件里面的  isprod 数据的 变量  (进行开发模式 和  发布模式的cdn资源的引入, 开发模式引入的js和css文件是本地的,发布模式引入的js和css文件是cdn外部连接的)
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <link rel="icon" href="dist/favicon.ico">
  <title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev - ' %>电商后台管理系统</title>
  <% if(htmlWebpackPlugin.options.isProd){ %>
  <!-- nprogress 的样式表文件 -->
  <link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" />
  <!-- 富文本编辑器 的样式表文件 -->
  <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.core.min.css" />
  <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.snow.min.css" />
  <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.bubble.min.css" />
  <link rel="stylesheet" href="https://cdn.bootcss.com/element-ui/2.12.0/theme-chalk/index.css" />
  <script src="https://cdn.staticfile.org/vue/2.5.22/vue.min.js"></script>
  <script src="https://cdn.staticfile.org/vue-router/3.0.1/vue-router.min.js"></script>
  <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
  <script src="https://cdn.staticfile.org/lodash.js/4.17.11/lodash.min.js"></script>
  <script src="https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js"></script>
  <script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script>
  <!-- 富文本编辑器的 js 文件 -->
  <script src="https://cdn.staticfile.org/quill/1.3.4/quill.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js"></script>
  <!-- element-ui 的 js 文件 -->
  <script src="https://cdn.bootcss.com/element-ui/2.12.0/index.js"></script>

  <!-- // -->
  <script src="https://cdn.bootcss.com/moment.js/2.24.0/locale/af.js"></script>
  <% } %>
</head>

<body>
  <noscript>
    <strong>Web</strong>
  </noscript>
  <div id="app"></div>
</body>

</html>

3.删除掉  发布模式下的mian.js 里面的  相关引入的css样式, 相关引入的js样式 不用删除

×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:前端笔记 » vue 通过externals 加载外部CDN资源,减少打包体积

网友评论(0)