首页 > 其他分享 >Vue3中(vite.config.js)配置打包的时候去除console.log

Vue3中(vite.config.js)配置打包的时候去除console.log

时间:2023-04-15 18:57:57浏览次数:50  
标签:console log plugin js import path true vite

参考:https://www.cnblogs.com/lovewhatIlove/p/16476165.html

安装terser

npm add -D terser

vite中配置

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import visualizer from "rollup-plugin-visualizer";
import viteCompression from "vite-plugin-compression";
import { viteZip } from "vite-plugin-zip-file";
import mpaPlugin from "vite-plugin-mpa-plus";

const getBuildInfo = require("./version/version.js");
const path = require("path");

export default defineConfig({
  base: "/", // 开发或生产环境服务的公共基础路径
  plugins: [
    vue(),
    mpaPlugin({
      pages: {
        index: {
          filename: "index.html",
          template: "public/index.html",
          inject: {
            data: {
              title: "mpa-app1"
            }
          }
        },
        version: {
          filename: "version.html",
          template: "version/index.html",
          inject: {
            data: {
              buildInfo: getBuildInfo()
            }
          }
        }
      }
    }),
    viteZip({
      folderPath: path.resolve(__dirname, "dist"),
      outPath: path.resolve(__dirname),
      zipName: "dist.zip"
    }),
    vueJsx(),
    visualizer({
      open: false,
      gzipSize: true
    }),
    viteCompression({
      deleteOriginFile: false,
      algorithm: "gzip"
    })
  ],
  resolve: {
    // 定义路径别名
    alias: {
      "@": path.resolve(__dirname, "src")
    },
    // 导入时省略扩展名
    extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"]
  },
  server: {
    host: "0.0.0.0",
    port: 9999,
    open: true,
    proxy: {
      "/yyfnzx": {
        target: "http://39.106.114.130:18895/yyfnzx",
        changeOrigin: true,
        rewrite: path => path.replace(/^\/yyfnzx/, "")
      },
      "/empower": {
        target: "http://192.168.1.141:8180/empower",
        changeOrigin: true,
        rewrite: path => path.replace(/^\/empower/, "")
      }
      // 'empower/ucs': {
      // 	// target: 'http://39.106.114.130:18894/',
      // 	target: 'https://dmc.haizhi.com/',
      // 	changeOrigin: true
      // },
    }
  },
  build: {
    outDir: "./dist/",
    brotliSize: false, // 关闭打包过程中计算包的大小
    cssCodeSplit: true, //启用/禁用 CSS 代码拆分
    assetsInlineLimit: 4096, // 图片转base64编码的阈值
    sourcemap: false, //构建后是否生成 source map 文件
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes("node_modules")) {
            return id
              .toString()
              .split("node_modules/")[1]
              .split("/")[0]
              .toString();
          }
        },
        chunkFileNames: "static/js/[name]-[hash].js",
        entryFileNames: "static/js/[name]-[hash].js",
        assetFileNames: "static/[ext]/[name]-[hash].[ext]"
      }
    },
  //  start = 核心配置
    minify: 'terser',
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    }
  // end = 核心配置
  }
});

// https://vitejs.dev/config/


标签:console,log,plugin,js,import,path,true,vite
From: https://www.cnblogs.com/openmind-ink/p/17321639.html

相关文章

  • js方法实现 10+ 100+ 1000+ 10000+
    将数字类型优化12=>10+120=>100+1200=>1000+10以内不管调用后赋值进行数字化item.read_num=Number(util.picture(item.read_num))直接cv代码数字优化自己调用定义函数**//浏览量优化functionpicture(num){if(num<10){returnnum;}va......
  • 分享一个轻量级的开源Log日志库
    本文分享一个网上找到的轻量级的开源日志库— EasyLogger。对于嵌入式开发中需要使用到日志功能的,我个人觉得这个是个不错的选择,也是学习别人优秀代码的一个好例子。首先要说明,这个EasyLogger不是我个人写的,是从网上找到的,感觉不错,使用说明也很详细,就想分享给更多人知道。感觉开......
  • js 数组、对象转json 以及json转 数组、对象
    1、JS对象转JSON方式:JSON.stringify(obj)varjson={"name":"iphone","price":666};//创建对象;varjsonStr=JSON.stringify(json);//转为JSON字符串console.log(jsonStr);2、JS数组转JSON//数组转json串vararr=[1,2,3,{a:1}];JSON.st......
  • js 浏览器中当前页下载文件
    1downloadImg(url:string,name:string):void{2letxhr=newXMLHttpRequest();3xhr.responseType='blob';4xhr.open('GET',url);5xhr.send();6xhr.addEventListener('load',function(){7letblob=xhr.resp......
  • 使用okhttp-4.10.0.jar报,但是发现没有HttpLoggingInterceptor的解决方法
    HttpLoggingInterceptor是OkHttp库中的一个拦截器,可以用于记录HTTP请求和响应的信息,如请求和响应的头部、HTTP方法和请求体等。在OkHttp3.x版本中,HttpLoggingInterceptor是内置的,可以直接使用。但是在OkHttp4.x版本中,HttpLoggingInterceptor被移动到了另外一个库ok......
  • 在Node.JS中,调用JShaman的Web API接口,加密JS代码。
    在Node.JS中,调用JShaman的WebAPI接口,加密JS代码。源码varjs_code=` functionNewObject(prefix) { varcount=0; this.SayHello=function(msg) { count++; alert(prefix+msg); } this.GetCount=function() { returncount; } } varobj=newNewO......
  • json数据按照某一个相同键值进行分类成一个新的二维json数组
    1formatTreeData(checkNodes){2varmap={},3targetData=[];4checkNodes.forEach(item=>{5if(!map[item.groupKey]){6targetData.push({7value:item.groupKey,8label......
  • momentjs学习笔记
    momentjs学习笔记文档:http://momentjs.cn/docs/#/get-set/参考:https://blog.csdn.net/yuan_jlj/article/details/117294481......
  • transtale.js v1.1
    functiongc(){varname="transLang=";varca=document.cookie.split(';');for(vari=0;i<ca.length;i++){varc=ca[i].trim();if(c.indexOf(name)==0)returnc.substring(name.length,c.length);......
  • 关于js对象遍历保证顺序的问题
    Object.keys(obj).sort().forEach(...),注:仅用于对象的key值是可定义顺序的,如key值为时间错,数字等,通过sort(),可默认按照数组大小排序(也可通过sort的自定义函数排序)object.keys/values()和forin不能保证对象传成数组或遍历的顺序友情链接1友情链接2......