若是你看完了全文,请注意最后一句话html
假如生成的webpack文档以下vue
//vue inspect 生成的webpack文件内容
{
mode: 'development',
context: 'D:\\workspace\\my_vue\\demo',
devtool: 'source-map',
node: {
setImmediate: false,
process: 'mock',
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty'
},
...
}
复制代码
实际测试了下
查看mode 执行 vue inspect mode
查看node 下的 child_process配置 执行 vue inspect node.child_process
所以咱们能够推断出 想要查看rules的配置 执行 vue inspect module.rules
node
以后我在文档中找到了对应的说明 审查项目的-webpack-配置。webpack
const merge = require('webpack-merge')
module.exports = {
productionSourceMap: true,
publicPath: 'vue',
chainWebpack: config => {
config.devtool('source-map')
config.module
.rule('images')
.use('url-loader')
.tap(options => // tap修改参数的方法
merge(options, { //merge方法是保证咱们不会覆盖掉原有的其余配置
limit: '1120'
})
)
}
}
复制代码
一开始看到的时候并不能理解,一样咱们看下实际生成的内容git
{
devtool:'source-map',
...
module: {
noParse: /^(vue|vue-router|vuex|vuex-router-sync)$/,
rules: [
...
/* config.module.rule('images') */
{
test: /\.(png|jpe?g|gif|webp)(\?.*)?$/,
use: [
/* config.module.rule('images').use('url-loader') */
{
loader: 'url-loader',
options: {
limit: '1120',
fallback: {
loader: 'file-loader',
options: {
name: 'img/[name].[hash:8].[ext]'
}
}
}
}
...
]
}
]
}
...
}
复制代码
这么看起来豁然开朗,生成webpack的配置中就有了一些说明。
同时咱们还能发现,github
虽然大部分均可以像总结的那样配置然而有些仍是有差异的。好比原配置是数组的rules。这只是一种速记方法。web
如今咱们来继续配置修改rule(media)的配置vue-router
const merge = require('webpack-merge')
module.exports = {
productionSourceMap: true,
publicPath: 'vue',
chainWebpack: config => {
config.devtool('source-map')
config.module
.rule('images')
.use('url-loader')
.tap(options =>
merge(options, {
limit: '1120'
})
)
.end() //返回到loader配置这一层
.end() //返回到rules配置这一层
.rule('media')//配置新的rule
.use('url-loader')
.tap(options =>
merge(options, {
limit: '1120'
})
)
}
}
复制代码
这只是我我的的理解,但愿能够帮助其余朋友,然而这是根据结果推断的,所以会与实际的文档会有不少不一样,能够当成辅助记忆的一种方法。开发的过程当中,应当与 webpack-chain官方文档为主。配置完经过vue inspect确认配置,若是失效再去文档中寻找正确的配置方法。vuex