我们看一下 webpack-chain 到底做什么?
Use a chaining API to generate and simplify the modification of Webpack version 2-4 configurations.
熟悉 cli-plugin-babel
、cli-plugin-eslint
源码的话,你会时常看到它。
如何使用呢?
1、加载它
const Config = require('webpack-chain');
2、调用 new
const config = new Config();
后面就是一个一个的方法介绍和使用了:
第一个:entry
设置
config .entry('index11') .add('src/index11.js') .end() .entry('index22') .add('src/index22.js') .end()
我们调用如下方法看看:
config.toString()
打印一下:
{ entry: { index11: [ 'src/index11.js' ], index22: [ 'src/index22.js' ] } }
第二个:plugin
设置
参考:cli-service/lib/config/app.js
格式如下:
config .plugin(name) .use(WebpackPlugin, args)
const HTMLPlugin = require('html-webpack-plugin')const htmlOptions = { templateParameters: (compilation, assets, pluginOptions) => {}, template: '/Users/***/public/index.html'} webpackConfig .plugin('html') .use(HTMLPlugin, [htmlOptions])
我们调用如下方法看看:
config.toString()
打印一下:
plugins: [ /* config.plugin('html') */ new HtmlWebpackPlugin( { templateParameters: function () { /* omitted long function */ }, template: '/Users/***/public/index.html' } ) ]
第三个:module
设置
这里方法比较多,用到了
rule 对应 rules: []
test(/.js/
include.add('src') 对应 include: ['src']
use('eslint') 对应 use: []
loader('eslint-loader') 对应 loader: 'eslint-loader'
测试地址:https://runkit.com/embed/5tizmdtfci3t
config.module .rule('lint') .test(/\.js$/) .pre() .include .add('src') .end() // Even create named uses (loaders) .use('eslint') .loader('eslint-loader') .options({ rules: { semi: 'off' } });
我们调用如下方法看看:
config.toString()
打印一下:
{ module: { rules: [ /* config.module.rule('lint') */ { test: /\.js$/, enforce: 'pre', include: [ 'src' ], use: [ /* config.module.rule('lint').use('eslint') */ { loader: 'eslint-loader', options: { rules: { semi: 'off' } } } ] } ] } }
第四个:devServer
设置
config.devServer.set('hot', true); config.devServer.hot(true)
我们调用如下方法看看:
config.toString()
打印一下:
{ devServer: { hot: true } }
作者:dailyvuejs
链接:https://www.jianshu.com/p/b2ef2d385b1b
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦