赞
踩
- module.exports = {
- chainWebpack (config) {
- // 生产环境使用cdn资源
- config.when(process.env.NODE_ENV === 'prod', config => {
- {
- // 设置哪些资源不需要被打包,改为从外部获取资源,也就是获取cdn资源
- config.set('externals', {
- vue: 'Vue',
- 'vue-router': 'VueRouter',
- axios: 'axios',
- moment: 'moment',
- 'element-ui': 'ELEMENT'
- })
- // 给index.html传参,利用的是webpack-html-plugin插件
- config.plugin('html').tap(args => {
- args[0].useCdn = true
- return args
- })
- }
- })
- }
- };
- <!DOCTYPE html>
- <html lang="">
-
- <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="<%= BASE_URL %>favicon.ico">
- <script src="<%= BASE_URL %>config.js"></script>
- <title>
- <%= htmlWebpackPlugin.options.title %>
- </title>
- </head>
-
- <body>
- <div id="app"></div>
- <!-- built files will be auto injected -->
- <!-- 使用cdn加载的资源 -->
- <% if(htmlWebpackPlugin.options.useCdn==true) %>
- <script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js"></script>
- <script src="https://cdn.staticfile.org/vue-router/3.5.1/vue-router.min.js"></script>
- <script src="https://cdn.staticfile.org/axios/0.26.1/axios.min.js"></script>
- <script src="https://cdn.staticfile.org/moment.js/2.29.1/moment.min.js"></script>
- <script src="https://cdn.staticfile.org/element-ui/2.15.6/index.min.js"></script>
- <% } %>
- </body>
-
- </html>
注意:
1,引入cdn资源时,如果使用了element-ui,注意引入的顺序问题,vue需要在element前边
2,element-ui不能通过按需引入的方式引入
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。