npm install webpack-bundle-analyzer
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPluginconfigureWebpack: {plugins: [new BundleAnalyzerPlugin({// 可以是`server`,`static`或`disabled`。// 在`server`模式下,分析器将启动HTTP服务器来显示软件包报告。// 在“静态”模式下,会生成带有报告的单个HTML文件。// 在`disabled`模式下,你可以使用这个插件来将`generateStatsFile`设置为`true`来生成Webpack Stats JSON文件。analyzerMode: 'server',// 将在“服务器”模式下使用的主机启动HTTP服务器。analyzerHost: '127.0.0.1',// 将在“服务器”模式下使用的端口启动HTTP服务器。analyzerPort: 8000,// 路径捆绑,将在`static`模式下生成的报告文件。// 相对于捆绑输出目录。reportFilename: 'report.html',// 模块大小默认显示在报告中。// 应该是`stat`,`parsed`或者`gzip`中的一个。// 有关更多信息,请参见“定义”一节。defaultSizes: 'gzip',// 在默认浏览器中自动打开报告openAnalyzer: true,// 如果为true,则Webpack Stats JSON文件将在bundle输出目录中生成generateStatsFile: false,// 如果`generateStatsFile`为`true`,将会生成Webpack Stats JSON文件的名字。// 相对于捆绑输出目录。statsFilename: 'stats.json',// Json()方法的选项。// 例如,您可以使用`source:false`选项排除统计文件中模块的来源。// 在这里查看更多选项:https: //github/webpack/webpack/blob/webpack-1/lib/Stats.js#L21statsOptions: null,logLevel: 'info', // 日志级别。可以是'信息','警告','错误'或'沉默'。}),],},
将项目依赖的第三方组件库,才有cdn引入的方式,来减少打包体积。但是cdn引入,也有缺点,就是地址的不稳定性等等。
这里优化采用的是将第三方的库的代码下载下来,放项目本地,进行引入,来减少打包的体积
element ui的css样式本地引入,注意路径和fonts文件
1.在public中新建js文件夹,将需要引入的包放入。
2.public/index.html文件
<link rel="stylesheet" type="text/css" href="/css/element-theme-chalk2.15.6.css"><% if (v.NODE_ENV=='production' ) { %><script src="/js/vue.min-2.6.14.js"></script><script src="/js/echarts.min-4.9.0.js"></script><script src="/js/element-ui-2.15.6.js"></script><script src="/js/aliyun-oss-sdk-6.17.1.min.js"></script><script src="/js/axios-0.26.1.min.js"></script><% } %><% if (v.NODE_ENV=='development' ) { %><script src="/js/vue-2.6.14.js"></script><script src="/js/echarts-4.9.0.js"></script><script src="/js/element-ui-2.15.6.js"></script><script src="/js/aliyun-oss-sdk-6.17.1.js"></script><script src="/js/axios-0.26.1.min.js"></script><% } %>
在对应的位置引入,各种js引入时需要注意位置,如果放在header中,会阻塞页面的加载,所以我放body里面了。
在生产环境最好引入压缩的源码,这样体积更小
需要注意的是:
<script src="/js/vue-2.6.14.js"></script>下面这种方式 不可用<script src="./js/vue-2.6.14.js"></script>
import Vue from 'vue'import Element from 'element-ui'import './assets/styles/element-variables.scss'import 'element-ui/lib/theme-chalk/icon.css'Vue.use(Element, {size: ('size') || 'medium', // set element-ui default size
})
fig.js
configureWebpack: {externals: {echarts: 'echarts',vue: 'Vue',axios: 'axios','element-ui': 'ELEMENT','ali-oss': 'OSS',},},
下载依赖
npm install --save-dev compression-webpack-plugin
const CompressionPlugin = require('compression-webpack-plugin')let productionGzipExtensions = /.(js|css|json|txt|html|ico|svg)(?.*)?$/ichainWebpack(config) {if (v.NODE_ENV === 'production') {config.plugin('CompressionPlugin').use('compression-webpack-plugin', [{filename: '[path][base].gz',algorithm: 'gzip',// 要压缩的文件(正则)test: productionGzipExtensions,// 最小文件开启压缩threshold: 10240,minRatio: 0.8,},])}},
本文发布于:2024-01-31 05:55:01,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170665170126023.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |