// 所有配置请参考 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配置的更多相关文章

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

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

  2. vue.config.js报错cannot set property "preserveWhitespace" of undefined

    vue.config.js报错cannot set property "preserveWhitespace" of undefined 最近在项目中配置webpack,由于vue ...

  3. webpack.config.js和vue.config.js的区别

    webpack.config.js是webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用,vue的项目可以使用,react的项目也可以使用. vue.config.js是vue ...

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

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

  5. vue cli 中关于vue.config.js中chainWebpack的配置

    Vue CLI  的官方文档上写:调整webpack配置最简单的方式就是在vue.config.js中的configureWebpack选项提供一个对象. Vue CLI 内部的 webpack 配置 ...

  6. vue.config.js常用配置

    使用vue-cli3.0搭建项目比之前更简洁,没有了build和config文件夹. vue-cli3的一些服务配置都迁移到CLI Service里面了,对于一些基础配置和一些扩展配置需要在根目录新建 ...

  7. vue-cli3的vue.config.js文件配置,生成dist文件

    //vue.config.jsonconst path = require('path'); // const vConsolePlugin = require('vconsole-webpack-p ...

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

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

  9. Vue-Cli 3.0 + vue.config.js

    虽然一直没有亲手搭建过vue项目,但是2.0的时候就开始自学(但并没有实践项目).然后公司最近有个人用3.0做了个项目,公司让我参与进去,我就顺便学习了一把3.0.(美滋滋) 因为电脑的环境还是之前自 ...

  10. vue cli3.3 以上版本配置vue.config.js

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

随机推荐

  1. BC7-牛牛的字符矩形

    题目描述 牛牛尝试用键盘读入一个字符,然后在屏幕上显示用这个字符组成的 3*3 的矩形. 输入描述 一行读入一个 char 类型的字符. 输出描述 输出这个字符组成的 3*3 矩形. 示例 1 输入: ...

  2. 基于AbstractProcessor扩展MapStruct自动生成实体映射工具类

    作者:京东物流 王北永 姚再毅 1 背景 日常开发过程中,尤其在 DDD 过程中,经常遇到 VO/MODEL/PO 等领域模型的相互转换.此时我们会一个字段一个字段进行 set|get 设置.要么使用 ...

  3. 递归概念&分类&注意事项

    递归概念&分类&注意事项 概念 递归:指在当前方法内调用自己的这种现象. 递归的分类:.递归分为两种,直接递归和间接递归..直接递归称为方法自身调用自己..间接递归可以A方法调用B方法 ...

  4. Blazor入门100天 : 身份验证和授权 (2) - 角色/组件/特性/过程逻辑

    目录 建立默认带身份验证 Blazor 程序 `角色/组件/特性/过程逻辑 DB 改 Sqlite 将自定义字段添加到用户表 脚手架拉取IDS文件,本地化资源 freesql 生成实体类,freesq ...

  5. sync.Once 使用及解析

    目录 前言 1. sync.Once 简介 2. sync.Once 源码解析 2.1 为什么 done 作为第一个字段 2.2 Do 方法的实现细节 2.3 其他重要细节 3. sync.Once ...

  6. vue3 | isRef、unref、toRef、toRefs

    isRef 检查某个值是否是ref.是返回true,否则返回false. const num = ref(10); const num1 = 20; const num2 = reactive({ d ...

  7. (Crack)SQL转Linq工具的使用——Linqer

    官方下载网站:http://www.sqltolinq.com/ 这是干什么用的         就是Sql语句转Linq  给不熟悉的小白用 再用Linq 转 Lambda      (用到Linq ...

  8. python正则分组匹配

    import re s = ''' {"type":"buy","order_no":"202006161314138669164 ...

  9. Redis-05持久化

    1 Redis持久化 RDB(Redis DataBase) AOF(Append Only File) 2 RBD 2.1 基本说明 在指定的时间间隔内将内存中的数据集快照写入磁盘文件,它恢复时将快 ...

  10. docker05-dockerfile

    1.dockerfile是什么 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本.可以理解为docker自己的语言编写的脚本. 2.Dockerfile内容基础 ...