有阳光的地方就会有阴影,所以有阴影的地方也一定会有阳光
前言
1 chainWebpack 链式操作
config.plugin 插件
use 使用插件
// config.plugin(name)
// 具名插件
// 具名插件html, 默认使用htmlWebpackPlugin
// 无需use
config.plugin('html')
// 具名插件povide,使用webpack.ProvidePlugin
// args必须为数组,options需要使用数组包裹
plugin('povide')
.use(webpack.ProvidePlugin, [options])
tap 更改参数
// htmlWebpackPlugin
config.plugin('html').tap(args => {
// 新增CDN资源引入
// 在index.htm中动态引入link和script
args[0].CDN = CDNSources
// 必须返回args
return args
})
// ProvidePlugin
plugin('povide')
.use(webpack.ProvidePlugin, [{
_: 'lodash'
}])
.tap(args => {
console.log('povide', args)
return args
})
config.resolve.alias 别名
config.resolve.alias
.set('@', path.resolve(__dirname, "src"))
.set(
'test',
path.resolve(__dirname, 'src/plugins/test.js')
)
2 ProvidePlugin
test.js
export const add = (x, y) => x + y
export const sum = (...args) => args.reduce((a, c) => a + c, 0)
export default { add, sum }
options 选项
node_modules 模块引入
{
$: 'jquery'
}
src 本地引入
{
Test: path.resolve(__dirname, 'src/plugins/test.js')
}
console.log('Test', Test)
// {add, sum, default: {add, sum}}
src 本地局部引入
{
Add: [path.resolve('src/plugins/test.js'), 'add']
}
console.log('Add', Add)
// function add() {}
src 本地别名引入
// 设置别名
config.resolve.alias.set(
'test',
path.resolve(__dirname, 'src/plugins/test.js')
)
// 引入模块
{
test: 'test'
}
console.log('Test', Test)
// {add, sum, default: {add, sum}}
3.注意
1.options外层必须包裹数组
2.export default导出模块,对象为 {default} 3.引入路径须使用 path.resolve解析
尾声
看,窗外的月亮真好看,就像那时候的你一样, 米奥~
晚安 ^_^
参考链接
往期回顾
- 每天学习一个vue插件(1)——better-scroll
- 每天学习一个vue插件(2)——vue-awesome-swiper
- 每天学习一个vue插件(3)——eslint + prettier + stylelint
- 每天学习一个vue插件(4)——v-viewer
- 每天学习一个vue插件(5)——postcss-pxtorem
- 每天学习一个vue插件(6)——momentjs
- 每天学习一个vue插件(7)——hammerjs
- 每天学习一个vue插件(8)——mcanvas
- 每天学习一个vue插件(9)——MathJax
- 每天学习一个vue插件(10)——Vue-APlayer
- 每天学习一个vue插件(11)——vue-drag-resize
- 每天学习一个vue插件(12)——vue-fullpage
- 每天学习一个vue插件(13)——html2canvas
- 每天学习一个vue插件(14)——vue-pull-to
- 每天学习一个vue插件(15)——vue-content-placeholders
- 每天学习一个vue插件(16)——vue-video-player
- 每天学习一个vue插件(17)——js-file-download
- 每天学习一个vue插件(18)——js-audio-recorder
- 每天学习一个vue插件(19)——vue-treeselect
- 每天学习一个vue插件(20)——progressbar