// 所有配置请参考 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. 【Dubbo3终极特性】「云原生三中心架构」带你探索Dubbo3体系下的配置中心和元数据中心、注册中心的原理及开发实战(上)

    Dubb3的应用级服务发现 Dubbo3提供了全新的应用级服务发现模型,该模型在设计与实现上区别于 Dubbo2 的接口级服务发现模型. 概括来说,Dubbo3 引入的应用级服务发现主要有以下优势 适 ...

  2. angular---嵌套路由

  3. angular打包部署设置publicPath文件目录及访问地址,解决打包完成后,运行打包文件,报错404,js,css未找到

    方案1.改变文件目录 不改变访问地址:XXXPRO 是部署的服务器上面的 文件夹名称 ng build --prod --base-href /XXXPRO 方案2.改变访问地址录同时改变文件目录-- ...

  4. 图书管理系统BMS

    图书管理系统BMS 效果图: 主要代码: 表关系的创建: from django.db import models # Create your models here. class Book(mode ...

  5. 问题记录:VMware vSphere vCenter 7.0 上传文件失败

    问题记录:VMware vSphere vCenter 7.0 上传文件失败 环境说明: VC版本:VMware vSphere vCenter 7.0 ESXi版本:VMware vSphere E ...

  6. 【Android】Android 源码方式使用 opencv 库文件

    使用方法 opencv 官方的 SDK 已经有编译好的 so 库,我们可以直接使用,因此我们只需要将平台架构对应的 so 库文件以及头文件提取出来,使用 Android.mk 进行预安装,然后在需要使 ...

  7. 【HMS Core】使用机器学习服务和搜索服务识别植物

    ​1.介绍 总览 机器学习服务(ML Kit)为开发者提供简单易用.服务多样.技术领先的机器学习能力,助力开发者更快更好地开发各类AI应用.同时,搜索服务(Search Kit)通过端侧SDK和云侧A ...

  8. allure环境搭建

    allure环境搭建 在搭建之前你应该有python.pycharm jdk也需要(文中忽略,可以参考网上文档安装,可以用jdk1.8) 以windows为例,mac.linux你用到这些操作系统,这 ...

  9. Nginx基础02:配置文件nginx.conf(Part1)

    我们使用Nginx主要是通过其配置文件nginx.conf来实现的.按照一定的规则,编写特定的指令,可以帮助我们实现对Web服务的控制!所以,学习Nginx的用法,几乎就是学习nginx.conf! ...

  10. 2020-6-2 map?

      问题描述 试题编号: 202006-2 试题名称: 稀疏向量 时间限制: 2.0s 内存限制: 512.0MB 问题描述:     #include<stdio.h>//数据量很大,所 ...