-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvue.config.js
103 lines (103 loc) · 3.6 KB
/
vue.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
// 基本路径
baseUrl: process.env.NODE_ENV === 'production'
? '/'
: '/',
// 输出文件目录
outputDir: 'dist', // 默认dist
// 用于嵌套生成的静态资产(js,css,img,fonts)目录
// assetsDir: '',
// 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径
indexPath: './index.html', // Default: 'index.html'
filenameHashing: true,
// 构建多页时使用
pages: undefined,
// eslint-loader是否在保存的时候检查
lintOnSave: true,
// 是否使用包含运行时编译器的Vue核心的构建
runtimeCompiler: true,
// 默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来
transpileDependencies: [],
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
productionSourceMap: false,
// 如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中。如果这个值是一个函数,则会接收被解析的配置作为参数。该函数及可以修改配置并不返回任何东西,也可以返回一个被克隆或合并过的配置版本。
configureWebpack: config => {
// if (process.env.NODE_ENV === 'production') {
// // 为生产环境修改配置...
// } else {
// // 为开发环境修改配置...
// }
config.performance = {};
config.performance.hints = false;
config.module.rules.push({
test: /\.html$/,
// exclude: ['./public/index.html'],
use:{
loader: 'raw-loader',
},
});
// config.module.rules[8].oneOf[3].use[0].loader = 'style-loader';
// config.module.rules[8].oneOf[3].use[0].options ={
// };
// config.module.rules[8].oneOf[3].use[1].loader = 'typings-for-css-modules-loader?modules';
// config.module.rules[8].oneOf[3].use[1].options ={
// modules: true,
// sourceMap: false,
// importLoaders: 2,
// localIdentName: '[name]__[local]___[hash:base64:5]'
// };
// console.log(config.module.rules[8].oneOf[3].use[1].options);
const plugins = [];
plugins.push(
new HtmlWebpackPlugin({
inject: true,
template: './public/index.html',
favicon: './public/favicon.ico'
})
);
config.plugins = [...config.plugins, ...plugins];
},
// 是一个函数,会接收一个基于 webpack-chain 的 ChainableConfig 实例。允许对内部的 webpack 配置进行更细粒度的修改。
chainWebpack: config => {
/*config.module
.rule('images')
.use('url-loader')
.loader('url-loader')
.tap(options => {
// 修改它的选项...
return options
})*/
},
// css相关配置
css: {
// 启用 CSS modules
modules: false,
// 是否使用css分离插件
extract: false,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {
// css: {
// data: `@import "@/assets/styles/helpers/mixin.scss";`
// }
}
},
// webpack-dev-server 相关配置
devServer: {
host: '0.0.0.0',
port: 8080,
https: false,
open: true,
hotOnly: false,
proxy: null, // 设置代理
before: app => {},
},
// PWA 插件相关配置
pwa: {},
// 第三方插件配置
pluginOptions: {
// ...
}
}