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

webpack 打包优化

在vue.config.js中配置

下载 uglifyjs-webpack-plugin 包 

const { defineConfig } = require("@vue/cli-service");
var path = require("path");module.exports = defineConfig({transpileDependencies: true,filenameHashing: false, // 去除Vue打包后.css和.js文件名称中8位hash值,跟缓存有关lintOnSave: false, // 设置是否在开发环境下每次保存代码时都启用eslint验证  是否在保存的时候使用 `eslint-loader` 进行检查。 有效的值:`ture` | `false` | `"error"`  当设置为 `"error"` 时,检查出的错误会触发编译失败。productionSourceMap: false, // 生产环境是否生成 sourceMap 文件 ;false 以加速生产环境构建publicPath: process.env.NODE_ENV === 'production' ? '' : '/', // 部署应用时的根路径(默认'/'),也可用相对路径(存在使用限制)outputDir: "dist", // 运行时生成的生产环境构建文件的目录(默认''dist'',构建之前会被清除)assetsDir: "static", //放置生成的静态资源(js、css、img、fonts)的(相对于 outputDir 的)目录(默认'')indexPath: "index.html", //指定生成的 index.html 的输出路径(相对于 outputDir)也可以是一个绝对路径。// 插件// plugins: [],pages: {//pages 里配置的路径和文件名在你的文档目录必须存在 否则启动服务会报错index: {//除了 entry 之外都是可选的entry: "src/main.js", // page 的入口,每个“page”应该有一个对应的 JavaScript 入口文件template: "public/index.html", // 模板来源filename: "index.html", // 在 dist/index.html 的输出title: "项目名称", // 当使用 title 选项时,在 template 中使用:<title><%= htmlWebpackPlugin.options.title %></title>chunks: ["chunk-vendors", "chunk-common", "index"], // 在这个页面中包含的块,默认情况下会包含,提取出来的通用 chunk 和 vendor chunk},},css: {extract: true, // 是否使用css分离插件 ExtractTextPluginsourceMap: false, // 开启 CSS source mapsloaderOptions: {}// modules: false// 启用 CSS modules for all css / pre-processor files.},chainWebpack: (config) => {config.resolve.alias.set("@", path.resolve(__dirname, "src"));},configureWebpack: (config) => {//  引入uglifyjs-webpack-pluginconst UglifyPlugin = require('uglifyjs-webpack-plugin');if (process.env.NODE_ENV === 'production') {// 为生产环境修改配置config.mode = 'production'// 将每个依赖包打包成单独的js文件let optimization = {minimizer: [new UglifyPlugin({uglifyOptions: {warnings: false,compress: {drop_console: true,   //生产环境自动删除consoledrop_debugger: false, //生产环境自动删除debuggerpure_funcs: ['console.log']}}})]}Object.assign(config, {optimization})} else {// 为开发环境修改配置config.mode = 'development'}},devServer: {// 环境配置host: "localhost",port: 8080,open: true, //配置自动启动浏览器proxy: { // 配置多个代理'/api': {target: 'http://localhost:8080',ws: true,changeOrigin: true,pathRewrite: {'^/api': ''}}}},
});// 启动仪式
if (process.env.NODE_ENV !== "production") {console.warn(["_ooOoo_"].join("\n"));
}

相关文章:

  • 【深度学习】因果推断与机器学习的高级实践 | 数学建模
  • 前端管理制度
  • 区块链技术将如何影响未来的数字营销?
  • EfficientViT:高分辨率密集预测的多尺度线性注意
  • Oracle(2-6) Backup and Recovery Overview
  • 网络安全面试经历
  • 华为认证 | Security安全认证学什么?IA、IP、IE学习内容详解!
  • Spring第二课响应的完全,如何理解前后端互联
  • oracle的debjob挂載及查詢
  • CSS-鼠标属性篇
  • 一个简易计算器实现(c语言)
  • ddns-go部署在linux虚拟机
  • mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性
  • Selenium中常用的JS操作总结
  • 魏副业而战:视频号副业项目赚钱攻略,每天30分钟,日入500+
  • android图片蒙层
  • Java新版本的开发已正式进入轨道,版本号18.3
  • react 代码优化(一) ——事件处理
  • Redis学习笔记 - pipline(流水线、管道)
  • SpingCloudBus整合RabbitMQ
  • spring-boot List转Page
  • 订阅Forge Viewer所有的事件
  • 对象管理器(defineProperty)学习笔记
  • 工作手记之html2canvas使用概述
  • 浅谈Golang中select的用法
  • 数据科学 第 3 章 11 字符串处理
  • 小李飞刀:SQL题目刷起来!
  • 湖北分布式智能数据采集方法有哪些?
  • ​520就是要宠粉,你的心头书我买单
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • # C++之functional库用法整理
  • #ifdef 的技巧用法
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • ${factoryList }后面有空格不影响
  • (13):Silverlight 2 数据与通信之WebRequest
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (备忘)Java Map 遍历
  • (力扣题库)跳跃游戏II(c++)
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • *** 2003
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET轻量级ORM组件Dapper葵花宝典
  • .net生成的类,跨工程调用显示注释
  • .net下简单快捷的数值高低位切换
  • .py文件应该怎样打开?
  • @EnableAsync和@Async开始异步任务支持
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [Android Studio] 开发Java 程序
  • [android] 手机卫士黑名单功能(ListView优化)
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C puzzle book] types
  • [C/C++]数据结构 堆的详解
  • [C++]指针与结构体