当前位置: 首页 > wzjs >正文

tp做网站中国建筑集团有限公司简介

tp做网站,中国建筑集团有限公司简介,制作一个网站需要多少费用,wordpress中调用文章前端打包优化相关 Webpack 打包时间的优化(基于 Vue CLI 4 Webpack 5) 1. Webpack 配置减少打包时间 1.1 对 JS 配置:排除 node_modules 和 src 中的打包内容 在开发环境下,修改 Webpack 的 JS 规则,排除 /node_m…

前端打包优化相关 Webpack

打包时间的优化(基于 Vue CLI 4 + Webpack 5)

1. Webpack 配置减少打包时间

1.1 对 JS 配置:排除 node_modulessrc 中的打包内容

在开发环境下,修改 Webpack 的 JS 规则,排除 /node_modulessrc 目录中的 JavaScript 文件。这意味着 node_modulessrc 目录中的 JavaScript 文件不会经过该规则定义的加载器处理(如 Babel 转译、ESLint 检查等)。

chainWebpack: (config) => {//  //编译时将项目的版本号作为一个全局常量ProjectVersion注入到代码中config.plugin('define').tap((args) => {args[0].ProjectVersion = JSON.stringify(ProjectVersion);return args;});// 判断当前环境是否为开发环境if (process.env.NODE_ENV === 'development') {// 配置模块规则config.module.rule('js').exclude.add(resolve('/node_modules')).add(resolve('src'));}
};
1.2 创建 DLL 配置文件,对第三方插件提前打包到本地
1.2.1 配置打包 DLL 文件
const path = require('path');
const webpack = require('webpack');module.exports = {mode: 'production', // 设置为生产模式entry: {// 将第三方库分组打包vue: ['vue', 'vue-router', 'vuex'],elementUI: ['element-ui'],axios: ['axios'],lodash: ['lodash'],},output: {path: path.resolve(__dirname, 'dll'), // 输出目录filename: '[name].dll.js', // 输出文件名library: '[name]_library', // 全局变量名},plugins: [// 生成 manifest 文件new webpack.DllPlugin({name: '[name]_library', // 需要与 output.library 一致path: path.resolve(__dirname, 'dll/[name]-manifest.json'), // manifest 文件路径}),],
};

执行命令生成 DLL 文件:

npx webpack --config webpack.dll.config.js
1.2.2 配置打包文件使用 DLL 文件并插入到模板中
configureWebpack: (config) => {config.plugins.push(// 引入分片的 DLL 文件new webpack.DllReferencePlugin({manifest: require(path.resolve(__dirname, 'public/dll/vue-manifest.json')),}),new webpack.DllReferencePlugin({manifest: require(path.resolve(__dirname, 'public/dll/axios-manifest.json')),}),new webpack.DllReferencePlugin({manifest: require(path.resolve(__dirname, 'public/dll/elementGui-manifest.json')),}),new webpack.DllReferencePlugin({manifest: require(path.resolve(__dirname, 'public/dll/vueBaiduMap-manifest.json')),}),new webpack.DllReferencePlugin({manifest: require(path.resolve(__dirname, 'public/dll/glodonTinymce-manifest.json')),}),new webpack.DllReferencePlugin({manifest: require(path.resolve(__dirname, 'public/dll/elementChinaAreaData-manifest.json')),}),new webpack.DllReferencePlugin({manifest: require(path.resolve(__dirname, 'public/dll/mintUi-manifest.json')),}),// 将分片的 DLL 文件添加到 HTML 模板中new AddAssetHtmlPlugin([{filepath: path.resolve(__dirname, 'public/dll/vue.dll.js'),publicPath: process.env.VUE_APP_PUBLIC_PATH, // 根据项目路径调整},{filepath: path.resolve(__dirname, 'public/dll/axios.dll.js'),publicPath: process.env.VUE_APP_PUBLIC_PATH,},{filepath: path.resolve(__dirname, 'public/dll/vueBaiduMap.dll.js'),publicPath: process.env.VUE_APP_PUBLIC_PATH,},{filepath: path.resolve(__dirname, 'public/dll/elementGui.dll.js'),publicPath: process.env.VUE_APP_PUBLIC_PATH,},{filepath: path.resolve(__dirname, 'public/dll/glodonTinymce.dll.js'),publicPath: process.env.VUE_APP_PUBLIC_PATH,},{filepath: path.resolve(__dirname, 'public/dll/elementChinaAreaData.dll.js'),publicPath: process.env.VUE_APP_PUBLIC_PATH,},{filepath: path.resolve(__dirname, 'public/dll/mintUi.dll.js'),publicPath: process.env.VUE_APP_PUBLIC_PATH,},]));
},
1.3 开启多线程打包

使用 thread-loader 可能会达不到效果,因为开启多线程也需要时间。

// 开启多线程打包
config.module.rule('vue').use('thread-loader').loader('thread-loader').tap(() => {return {workers: os.cpus().length,};}).before('vue-loader');
1.4 删除无用的插件配置,去掉 sourceMap
chainWebpack: (config) => {// 删除一些无用插件config.plugins.delete('friendly-errors');config.devtool = false; // eval|none source-map hidden-source-map  // 不生成 sourceMap 源代码,减少体积,加快打包速度
};
1.5 删除 console.log(生产环境),配置压缩 JS 和 CSS
// vue.config.js
const TerserPlugin = require('terser-webpack-plugin');
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');module.exports = {configureWebpack: {optimization: {minimize: true, // 启用压缩minimizer: [new TerserPlugin({terserOptions: {compress: {drop_console: true, // 删除 console.logpure_funcs: ['console.log'], // 只删除 console.log},format: {comments: false, // 删除注释},},extractComments: false, // 不提取注释到单独文件}),new CssMinimizerPlugin({minimizerOptions: {preset: ['default',{discardComments: { removeAll: true }, // 删除所有注释},],},}),],},},
};

2. 如何减少 Webpack 打包体积

2.1 按需加载

按需加载可以减少初始加载的代码量,提升页面加载速度。

2.2 Scope Hoisting

Scope Hoisting 会分析出模块之间的依赖关系,尽可能将打包出来的模块合并到一个函数中,减少函数声明和闭包的开销。

2.3 Tree Shaking

Tree Shaking 会去除没有引用的代码,减少打包体积。


通过以上优化措施,可以有效减少 Webpack 打包时间和体积,提升项目性能。


文章转载自:

http://gt9d0og6.hwcgg.cn
http://vnjZVGow.hwcgg.cn
http://yizjVerA.hwcgg.cn
http://2R198S8Z.hwcgg.cn
http://JwT7Z85R.hwcgg.cn
http://JyzC7Y8f.hwcgg.cn
http://nuw1isz4.hwcgg.cn
http://F20v9klu.hwcgg.cn
http://JIaD5QSb.hwcgg.cn
http://wHB10oPC.hwcgg.cn
http://DyPwdjbz.hwcgg.cn
http://NrNWvpYf.hwcgg.cn
http://eIThUxNN.hwcgg.cn
http://myholDwX.hwcgg.cn
http://Tkjv523a.hwcgg.cn
http://OCRYAbjb.hwcgg.cn
http://kOIRmX7t.hwcgg.cn
http://FK0lPNC1.hwcgg.cn
http://Zg8JxVG1.hwcgg.cn
http://7mfuR83X.hwcgg.cn
http://lyM2Ozqt.hwcgg.cn
http://FPBIwvEb.hwcgg.cn
http://j1SdvK4H.hwcgg.cn
http://sNYt6zz0.hwcgg.cn
http://HbJ2zFR5.hwcgg.cn
http://73x2NIIt.hwcgg.cn
http://HQK8CuOm.hwcgg.cn
http://uyp8WvM9.hwcgg.cn
http://nZ3xmBZN.hwcgg.cn
http://qxRGlRaV.hwcgg.cn
http://www.dtcms.com/wzjs/731442.html

相关文章:

  • 网站建设公司的性质湖北建设执业注册管理中心网站
  • html5网站模板怎么用旅游网站项目计划书
  • 怎么找到网站站长网页微信二维码不能直接识别
  • 做ppt的网站叫什么上海市中小企业服务平台
  • 做的很好的黑白网站直播视频网站
  • 儿童 网站模板实体店铺引流推广方法
  • 我想建立个网站怎么弄gzip网站优化
  • 学网站前端企业战略规划方案
  • wordpress化桔子seo网
  • 建设一个菠菜网站成本网站团队组成
  • 企业网站制作找什么人网林时代网站建设
  • 华意网站建设网络公司怎么样浙江省一建建设集团网站首页
  • 意派网站开发新手篇软件开发网站开发培训
  • 农场游戏系统开发网站建设推广乌克兰网站设计
  • 山东华泰建设集团有限公司官方网站平台个人链接是什么
  • 济南网站建设第六网建网站优怎么做
  • 天津众业建设工程有限公司网站做电商网站就业岗位晋升
  • 网站地址怎么申请注册家电维修做网站生意怎么样
  • 用域名建设网站网建部是干什么的
  • 公司建设的网站属于无形资产吗简述搜索引擎的工作原理
  • 天津网站建设天津天元建设集团有限公司黄岛分公司
  • 一家公司为什么要建官方网站控制网站的大量访问
  • 大型移动网站开发wordpress图片自动轮播插件
  • psd数据网站仿皮皮淘网站开发全程培训
  • 自己做免费的网站吗WordPress手机号验证登录
  • 惠州网站建设模板建设计公司网站要多少钱
  • 做网站预算表图片网站推广
  • 新手自学网站wordpress 任务管理系统
  • 北仑做网站淮安做网站
  • 个人如何免费建网站徐州企业网站推广