1. // vue.config.js
  2. const path = require('path');
  3. const CompressionWebpackPlugin = require("compression-webpack-plugin"); // 开启gzip压缩, 按需引用
  4. const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i; // 开启gzip压缩, 按需写入
  5. const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin; // 打包分析
  6. const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV);
  7. const resolve = (dir) = >path.join(__dirname, dir);
  8. module.exports = {
  9. publicPath: process.env.NODE_ENV === 'production' ? '/site/vue-demo/': '/',
  10. // 公共路径
  11. indexPath: 'index.html',
  12. // 相对于打包路径index.html的路径
  13. outputDir: process.env.outputDir || 'dist',
  14. // 'dist', 生产环境构建文件的目录
  15. assetsDir: 'static',
  16. // 相对于outputDir的静态资源(js、css、img、fonts)目录
  17. lintOnSave: false,
  18. // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码
  19. runtimeCompiler: true,
  20. // 是否使用包含运行时编译器的 Vue 构建版本
  21. productionSourceMap: !IS_PROD,
  22. // 生产环境的 source map
  23. parallel: require("os").cpus().length > 1,
  24. // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。
  25. pwa: {},
  26. // 向 PWA 插件传递选项。
  27. chainWebpack: config = >{
  28. config.resolve.symlinks(true); // 修复热更新失效
  29. // 如果使用多页面打包,使用vue inspect --plugins查看html是否在结果数组中
  30. config.plugin("html").tap(args = >{
  31. // 修复 Lazy loading routes Error
  32. args[0].chunksSortMode = "none";
  33. return args;
  34. });
  35. config.resolve.alias // 添加别名
  36. .set('@', resolve('src')).set('@assets', resolve('src/assets')).set('@components', resolve('src/components')).set('@views', resolve('src/views')).set('@store', resolve('src/store'));
  37. // 压缩图片
  38. // 需要 npm i -D image-webpack-loader
  39. config.module.rule("images").use("image-webpack-loader").loader("image-webpack-loader").options({
  40. mozjpeg: {
  41. progressive: true,
  42. quality: 65
  43. },
  44. optipng: {
  45. enabled: false
  46. },
  47. pngquant: {
  48. quality: [0.65, 0.9],
  49. speed: 4
  50. },
  51. gifsicle: {
  52. interlaced: false
  53. },
  54. webp: {
  55. quality: 75
  56. }
  57. });
  58. // 打包分析, 打包之后自动生成一个名叫report.html文件(可忽视)
  59. if (IS_PROD) {
  60. config.plugin("webpack-report").use(BundleAnalyzerPlugin, [{
  61. analyzerMode: "static"
  62. }]);
  63. }
  64. },
  65. configureWebpack: config = >{
  66. // 开启 gzip 压缩
  67. // 需要 npm i -D compression-webpack-plugin
  68. const plugins = [];
  69. if (IS_PROD) {
  70. plugins.push(new CompressionWebpackPlugin({
  71. filename: "[path].gz[query]",
  72. algorithm: "gzip",
  73. test: productionGzipExtensions,
  74. threshold: 10240,
  75. minRatio: 0.8
  76. }));
  77. }
  78. config.plugins = [...config.plugins, ...plugins];
  79. },
  80. css: {
  81. extract: IS_PROD,
  82. requireModuleExtension: false,
  83. // 去掉文件名中的 .module
  84. loaderOptions: {
  85. // 给 less-loader 传递 Less.js 相关选项
  86. less: {
  87. // `globalVars` 定义全局对象,可加入全局变量
  88. globalVars: {
  89. primary: '#333'
  90. }
  91. }
  92. }
  93. },
  94. devServer: {
  95. overlay: { // 让浏览器 overlay 同时显示警告和错误
  96. warnings: true,
  97. errors: true
  98. },
  99. host: "localhost",
  100. port: 8080,
  101. // 端口号
  102. https: false,
  103. // https:{type:Boolean}
  104. open: false,
  105. //配置自动启动浏览器
  106. hotOnly: true,
  107. // 热更新
  108. // proxy: 'http://localhost:8080' // 配置跨域处理,只有一个代理
  109. proxy: { //配置多个跨域
  110. "/api": {
  111. target: "http://172.11.11.11:7071",
  112. changeOrigin: true,
  113. // ws: true,//websocket支持
  114. secure: false,
  115. pathRewrite: {
  116. "^/api": "/"
  117. }
  118. },
  119. "/api2": {
  120. target: "http://172.12.12.12:2018",
  121. changeOrigin: true,
  122. //ws: true,//websocket支持
  123. secure: false,
  124. pathRewrite: {
  125. "^/api2": "/"
  126. }
  127. },
  128. }
  129. }
  130. }

vue-cli4 vue-config.js配置及其备注的更多相关文章

  1. @vue/cl构建得项目下,postcss.config.js配置,将px转化成rem

    依赖包: postcss-pxtorem 配置: 在项目根目录下创建 postcss.config.js 配置如下: module.exports = () => ({ plugins: [ r ...

  2. vue3.0 vue.config.js 配置实战

    今天讲述一下vue-config.js配置,我们前面搭建好脚手架会发现,这个对比2.x版本少了很多东西,没有build的配置,也没有webpack的配置,那么问题来了,我们如何去开发我们的项目呢,比如 ...

  3. 【vue-cli 3.0】 vue.config.js配置 - 路径别名

    如何配置vue-cli 3中vue.config.js的路径别名? 前段时间更新电脑重装了一下vue-cli,发现了vue-cli已经更新到3.0版.用来搭建项目后发现简化了很多,而且配置文件现在可以 ...

  4. vue.config.js配置前端代理

    // vue.config.js 配置说明 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions // 这 ...

  5. vue-cli的webpack模版,相关配置文件dev-server.js与webpack.config.js配置解析

    1.下载vue-cli npm install vue-cli -g vue-cli的使用与详细介绍,可以到github上获取https://github.com/vuejs/vue-cli 2.安装 ...

  6. 关于editor网页编辑器ueditor.config.js 配置图片上传

    最近公司项目在做一个门户网站,其中新闻和简介等部分使用到了ueditor编辑器,但是上级明确指示需要图片上传这个功能,这时却发现图片上传功能不能正常使用,上传时一直报错,网上收了好几个处理办法,都说的 ...

  7. webpack.config.js配置遇到Error: Cannot find module '@babel/core'&&Cannot find module '@babel/plugin-transform-react-jsx' 问题

    下文是网上找到的方法,是因为版本冲突的原因,参照后安装7版本解决 cnpm install -D babel-loader@ babel-core babel-preset-env 一. 问题描述 在 ...

  8. webpack2-webpack.config.js配置

     写在前面: 了解更多:https://github.com/miaowwwww/webpack-learn 贴一个webpack.ocnfig.js 的配置属性表 一.代码分割: 1.插件 Comm ...

  9. webpack.config.js====配置babel

    参考:https://www.jianshu.com/p/9808f550c6a91. 安装依赖babel-loader: 负责 es6 语法转化babel-preset-env: 包含 es6.7 ...

随机推荐

  1. Unity-2D

    Unity-2D 1.Unity中的2D模式: 1)游戏在二维上展示 启用 2D 模式时将会设置正交(即无透视)视图:摄像机沿 Z 轴观察,而 Y 轴向上增加.因此可以轻松可视化场景并放置 2D 对象 ...

  2. 27.Java 飞机游戏小项目

    开篇 游戏项目基本功能开发 飞机类设计 炮弹类设计 碰撞检测设计 爆炸效果的实现 其他功能 计时功能 游戏项目基本功能开发 这里将会一步步实现游戏项目的基本功能. 使用 AWT 技术画出游戏主窗口 A ...

  3. pg数据库排序和limit同时使用遇到的奇怪问题

    这两天由于一位实习生同事回学校答辩,因此我来跟进他之前开发的功能进行测试,测试反馈上来这么一个问题: 也就是说下面这两条sql查询出来的数据前10条的数据不一样. select * from tabl ...

  4. SpringDataRedis的Keyspaces设置

    前言 原文:https://docs.spring.io/spring-data/redis/docs/2.3.2.RELEASE/reference/html/#redis.repositories ...

  5. Linux常用命令-学习笔记

    Linux命令格式: 命令 [命令参数] [命令对象] # 命令之间的参数和对象用单个空格进行分割 # "[]"代表可选,{}代表必选其中的一项,|代表或者的关系,<> ...

  6. Eclipse创建Spring XML配置文件插件

    引用:https://www.cnblogs.com/lideqiang/p/9067219.html 第一步:在 Eclipse Marketplace仓库中,搜索sts 第二步:安装Spring ...

  7. 不同版本的 Spring Framework 有哪些主要功能?

    Version Feature Spring 2.5 发布于 2007 年.这是第一个支持注解的版本. Spring 3.0 发布于 2009 年.它完全利用了 Java5 中的改进,并为 JEE6 ...

  8. 判断1~n有多少个1

    判断1~n有多少个1 例如:1~12中 1 2 3 4 5 6 7 8 9 10 11 12 有1,10,11,12中含有1,则共有5个1: 算法如下: #include<stdio.h> ...

  9. 走一步再走一步,揭开co的神秘面纱

    前言 原文地址 源码地址 了解co的前提是已经知晓generator是什么,可以看软大神的Generator 函数的语法,co是TJ大神写的能够使generator自动执行的函数库,而我们熟知的koa ...

  10. linux系统引导过程

    linux系统引导过程 linux-0.11引导时,将依次运行BIOS程序.bootsect.s.setup.s和head.s,完成引导过程后进入到main函数运行.BIOS完成硬件的检查与初始化等工 ...