当前位置:   article > 正文

解决vue打包文件过大,大型依赖包使用cdn资源_htmlwebpackplugin.options.usecdn

htmlwebpackplugin.options.usecdn

1,配置config.js

  1. module.exports = {
  2. chainWebpack (config) {
  3. // 生产环境使用cdn资源
  4. config.when(process.env.NODE_ENV === 'prod', config => {
  5. {
  6. // 设置哪些资源不需要被打包,改为从外部获取资源,也就是获取cdn资源
  7. config.set('externals', {
  8. vue: 'Vue',
  9. 'vue-router': 'VueRouter',
  10. axios: 'axios',
  11. moment: 'moment',
  12. 'element-ui': 'ELEMENT'
  13. })
  14. //index.html传参,利用的是webpack-html-plugin插件
  15. config.plugin('html').tap(args => {
  16. args[0].useCdn = true
  17. return args
  18. })
  19. }
  20. })
  21. }
  22. };

2,配置index.html

  1. <!DOCTYPE html>
  2. <html lang="">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width,initial-scale=1.0">
  7. <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  8. <script src="<%= BASE_URL %>config.js"></script>
  9. <title>
  10. <%= htmlWebpackPlugin.options.title %>
  11. </title>
  12. </head>
  13. <body>
  14. <div id="app"></div>
  15. <!-- built files will be auto injected -->
  16. <!-- 使用cdn加载的资源 -->
  17. <% if(htmlWebpackPlugin.options.useCdn==true) %>
  18. <script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js"></script>
  19. <script src="https://cdn.staticfile.org/vue-router/3.5.1/vue-router.min.js"></script>
  20. <script src="https://cdn.staticfile.org/axios/0.26.1/axios.min.js"></script>
  21. <script src="https://cdn.staticfile.org/moment.js/2.29.1/moment.min.js"></script>
  22. <script src="https://cdn.staticfile.org/element-ui/2.15.6/index.min.js"></script>
  23. <% } %>
  24. </body>
  25. </html>

注意:

1,引入cdn资源时,如果使用了element-ui,注意引入的顺序问题,vue需要在element前边

2,element-ui不能通过按需引入的方式引入

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/165402?site
推荐阅读
相关标签
  

闽ICP备14008679号