vue.config.js --- vue-cli 4.0配置
// 所有配置请参考 https://cli.vuejs.org/zh/config/
module.exports = {
/**
* publicPath
* hash 模式下可使用
* publicPath: process.env.NODE_ENV === 'development' ? '/' : './',
* 部署应用包时的基本 URL。用法和 webpack 本身的 output.publicPath 一致
* 例子:http://localhost:8080/bdsp-page/#/login
*/
publicPath: '/bdsp-page',
// 打包输出后的文件夹
outputDir: 'dist',
// 静态资源存放的目录,相对于 outputDir 指定的文件夹
assetsDir: 'static',
// 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
indexPath: './',
/*
// 在 multi-page 模式下构建应用。每个“page”应该有一个对应的 JavaScript 入口文件。
// 其值应该是一个对象,对象的 key 是入口的名字,value 是:
// 1、一个指定了 entry, template, filename, title 和 chunks 的对象 (除了 entry 之外都是可选的);
// 2、或一个指定其 entry 的字符串。
pages: {
bdsp: {
// page 的入口
entry: 'src/bdsp-page/main.js',
// 模板来源
template: 'public/index.html',
// 在 dist/index.html 的输出
filename: 'index.html',
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: 'Index Page',
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
chunks: ['chunk-vendors', 'chunk-common', 'index']
},
// 当使用只有入口的字符串格式时,
// 模板会被推导为 `public/datax.html`
// 并且如果找不到的话,就回退到 `public/index.html`。
// 输出文件名会被推导为 `datax.html`。
datax: 'src/datax/main.js'
}
*/ /**
* lintOnSave
* 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码。
* 这个值会在 @vue/cli-plugin-eslint 被安装之后生效
*
* 值: boolean | 'warning' | 'default' | 'error'
* true | 'warning' 会输出 编译警告
* 'default' | 'error' 会输出 编译错误,导致编译失败
*/
lintOnSave: process.env.NODE_ENV === 'development',
// SourceMap 的作用就是能够让浏览器的调试面版将生成后的代码映射到源码文件当中,
// 使开发者可以在源码文件中 debug
productionSourceMap: false, /**
* configureWebpack: Object | Function
* 如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中(会合并到webpack配置中)。
* 如果你需要基于环境有条件地配置行为,或者想要直接修改配置,那就换成一个函数
* 该方法的第一个参数会收到已经解析好的配置。
* 在函数内,你可以直接修改配置,或者返回一个将会被合并的对象
* configureWebpack: config => {
* if (process.env.NODE_ENV === 'production') {
* // 为生产环境修改配置...
* } else {
* // 为开发环境修改配置...
* }
* }
*/
configureWebpack: {
// provide the app's title in webpack's name field, so that
// it can be accessed in index.html to inject the correct title.
name: name,
resolve: {
alias: {
// 设置 @ 的指向
'@': resolve('src'),
'@crud': resolve('src/components/system/Crud')
}
},
// 警告 webpack 的性能提示
performance: {
// hints: 'warning',
// // 入口起点的最大体积 整数类型(以字节为单位)
// maxEntrypointSize: 50000000,
// // 生成文件的最大体积 整数类型(以字节为单位 300k)
// maxAssetSize: 30000000
// // 只给出 js 文件的性能提示
// assetFilter: function(assetFilename) {
// return assetFilename.endsWith('.js')
// }
} },
chainWebpack(config) {
config.plugins.delete('preload') // TODO: need test
config.plugins.delete('prefetch') // TODO: need test // set svg-sprite-loader
config.module
.rule('svg')
.exclude.add(resolve('src/assets/icons'))
.end()
config.module
.rule('icons')
.test(/\.svg$/)
.include.add(resolve('src/assets/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
.end() // set preserveWhitespace
config.module
.rule('vue')
.use('vue-loader')
.loader('vue-loader')
.tap(options => {
options.compilerOptions.preserveWhitespace = true
return options
})
.end() config
// https://webpack.js.org/configuration/devtool/#development
.when(process.env.NODE_ENV === 'development',
config => config.devtool('cheap-source-map')
) config
.when(process.env.NODE_ENV !== 'development',
config => {
config
.plugin('ScriptExtHtmlWebpackPlugin')
.after('html')
.use('script-ext-html-webpack-plugin', [{
// `runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/
}])
.end()
config
.optimization.splitChunks({
chunks: 'all',
cacheGroups: {
libs: {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial' // only package third parties that are initially dependent
},
elementUI: {
name: 'chunk-elementUI', // split elementUI into a single package
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
},
commons: {
name: 'chunk-commons',
test: resolve('src/components'), // can customize your rules
minChunks: 3, // minimum common number
priority: 5,
reuseExistingChunk: true
}
}
})
config.optimization.runtimeChunk('single')
}
)
},
/**
* requireModuleExtension, extract, sourceMap, loaderOptions
* css相关配置具体见:https://cli.vuejs.org/zh/config/#css-extract
* css: {
* // 默认情况下,只有 *.module.[ext] 结尾的文件才会被视作 CSS Modules 模块。
* // 详情:https://cli.vuejs.org/zh/guide/css.html#css-modules
* requireModuleExtension: true,
*
* // 向预处理器 Loader 传递选项
* // 更多详情:https://cli.vuejs.org/zh/guide/css.html#%E5%90%91%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8-loader-%E4%BC%A0%E9%80%92%E9%80%89%E9%A1%B9
* loaderOptions: {
* css: {
* // 这里的选项会传递给 css-loader
* },
* postcss: {
* // 这里的选项会传递给 postcss-loader
* }
* }
* }
*/
/**
* devServer
* 所有 webpack-dev-server 的选项都支持
* 详情:https://webpack.docschina.org/configuration/dev-server/
* 注意:
* 1、有些值像 host、port 和 https 可能会被命令行参数覆写。
* 2、有些值像 publicPath 和 historyApiFallback 不应该被修改,因为它们需要和开发服务器的 publicPath 同步以保障正常的工作。
*/
devServer: {
// 指定监听请求的端口号,自动使用可以设置为 'auto'
port: port,
// 启动完毕后,自动打开在浏览器上
open: false, // overlay: true 当出现编译错误或警告时,在浏览器中显示全屏覆盖。
// 当前配置表示,只显示错误,不显示警告
overlay: {
warnings: false,
errors: true
},
/**
* proxy:请求代理
* 值:
* 1、String
* 例:proxy: 'http://localhost:4000'
* 这会告诉开发服务器将任何未知请求 (没有匹配到静态文件的请求) 代理到 http://localhost:4000
* 2、Object
* 完整的选项可以查阅 https://github.com/chimurai/http-proxy-middleware#proxycontext-config
*/
proxy: {
// 如果检测到以 /api 开头的请求,则会开启代理
'/api': {
// 转换为 真实的 请求地址
target: process.env.VUE_APP_BASE_API,
// 是否跨域:true 是;false 否
changeOrigin: true,
// 将 第一个 /api 改为 api ,可以改任意值
pathRewrite: {
'^/api': 'api'
}
}
/**
* 例: 请求路径为 /api/login,真实地址为 http://localhost:8080/
* 使用代理:
* '/api': {
* target: 'http://localhost:8080/',
* changeOrigin: false,
* pathRewrite: {
* '^/api': ''
* }
* }
* 经过代理以后的请求地址:http://localhost:8080/login
*
* 注意:
* 如果使用了请求拦截器,并设置了统一的请求头,
* 则代理收到的是 拦截过后 的请求路径,即 请求头+请求路径
*/
}
},
transpileDependencies: [
'vue-echarts',
'resize-detector'
]
}
vue.config.js --- vue-cli 4.0配置的更多相关文章
- 【vue-cli 3.0】 vue.config.js配置 - 路径别名
如何配置vue-cli 3中vue.config.js的路径别名? 前段时间更新电脑重装了一下vue-cli,发现了vue-cli已经更新到3.0版.用来搭建项目后发现简化了很多,而且配置文件现在可以 ...
- vue.config.js报错cannot set property "preserveWhitespace" of undefined
vue.config.js报错cannot set property "preserveWhitespace" of undefined 最近在项目中配置webpack,由于vue ...
- webpack.config.js和vue.config.js的区别
webpack.config.js是webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用,vue的项目可以使用,react的项目也可以使用. vue.config.js是vue ...
- vue3.0 vue.config.js 配置实战
今天讲述一下vue-config.js配置,我们前面搭建好脚手架会发现,这个对比2.x版本少了很多东西,没有build的配置,也没有webpack的配置,那么问题来了,我们如何去开发我们的项目呢,比如 ...
- vue cli 中关于vue.config.js中chainWebpack的配置
Vue CLI 的官方文档上写:调整webpack配置最简单的方式就是在vue.config.js中的configureWebpack选项提供一个对象. Vue CLI 内部的 webpack 配置 ...
- vue.config.js常用配置
使用vue-cli3.0搭建项目比之前更简洁,没有了build和config文件夹. vue-cli3的一些服务配置都迁移到CLI Service里面了,对于一些基础配置和一些扩展配置需要在根目录新建 ...
- vue-cli3的vue.config.js文件配置,生成dist文件
//vue.config.jsonconst path = require('path'); // const vConsolePlugin = require('vconsole-webpack-p ...
- vue.config.js配置前端代理
// vue.config.js 配置说明 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions // 这 ...
- Vue-Cli 3.0 + vue.config.js
虽然一直没有亲手搭建过vue项目,但是2.0的时候就开始自学(但并没有实践项目).然后公司最近有个人用3.0做了个项目,公司让我参与进去,我就顺便学习了一把3.0.(美滋滋) 因为电脑的环境还是之前自 ...
- vue cli3.3 以上版本配置vue.config.js
// vue.config.js 配置说明//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions// 这里只 ...
随机推荐
- 路由分发、名称空间、视图层之必会的三板斧、JsonResponse对象、request获取文件、FBV与CBV、模板层语法传值
路由分发.名称空间.视图层之必会的三板斧.JsonResponse对象.request获取文件.FBV与CBV.模板层语法传值 一.昨日内容回顾 二.路由分发 1.djiango的每个应用都有主见的t ...
- C/C++内存对齐原则
C/C++内存对齐 what && why 当用户自定义类型时(struct 或 class),编译器会自动计算该类型占用的字节数. C/C++ 为什么要内存对齐?我道行太浅,摘抄了网 ...
- 【MRTK】HoloLens开发基础项目设置
前言 好记性不如烂笔头,之前做项目的时候很熟练很顺手就没有写笔记.因为排期问题项目中断几个月之后需要重新拾起来,结果发现自己现在忘记得差不多了,于是还是决定写点东西记录一下.即便是简单的项目设置,忘记 ...
- ChatGPT保姆级注册教程
ChatGPT保姆级注册教程 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜.这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题. 有人说ChatGPT ...
- 树莓派UBUNTU MATE 自动登录用户
1.sudo vim /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf 2.添加autologin-user=youruser ...
- 2021级《JAVA语言程序设计》上机考试试题7
现在是学生查看,重置密码,原来是搜索,现在直接浏览,直接重置密码,改了下 代码如下: <%@ page language="java" contentType="t ...
- vant组件,picker时间选择,自定义时间选择,实现datePacker,时间选择长期,增加长期选项,用于选择身份证到期时间等...
vant组件,picker时间选择,自定义时间选择,实现datePacker,时间选择长期,增加长期选项,用于选择身份证到期时间等... 最近项目中有个需求,datePicker选项,需要实现增加一个 ...
- 一份随笔让你了解这个基于Raspberry Pi / 树莓派而设计的工业计算机
CM4 Sensing是一款基于Raspberry Pi / 树莓派 计算模块4(简称CM4),由 EDATEC 为物联网和数据采集应用而设计的工业计算机.它充分利用了CM4的结构灵活性,解决了CPU ...
- HashSet()相关易错点
package homework_;import java.util.HashSet;import java.util.Objects;/* * @author YAM */public class ...
- 代码随想录算法训练营day04 | leetcode
基础知识 记录一下栈实现及操作 public class ArrayDequeStack { public void main() { ArrayDeque stack = new ArrayDequ ...