webpack-自定义plugin


Plugin:开始打包,在某个时刻,帮助我们处理一些什么事情得机制

Plugin是一个类,里面包含一个apply函数,接受一个参数compiler(compiler包含打包过程得很多信息,比如生命周期的钩子)

官方文档:https://webpack.js.org/contribute/writing-a-plugin/

##copyright-webpack-plugin

class CopyrightWebpackPlugin {
    constructor(options){
        console.log(options)
    }
    apply(compiler){
        //官网有很多钩子,我们以emit为例
        compiler.hooks.emit.tapAsync(//异步操作的例子
            "CopyrightWebpackPlugin",
            (compilation,cb) => {
                compilation.assets["copyright.txt"] = {  //打包后创建一个新文件 打包后会在dist下多一个copyright.txt文件  内容为 hello copy
                    source:function(){
                        return "hello copy"
                    },
                    size:function(){
                        return 20;
                    }
                };
                cb()
            }
        )
        //同步的例子
        compiler.hooks.compile.tap(
            "CopyrightWebpackPlugin",
            compilation => {
                console.log("开始了")
            }
        )
    }
}

module.exports = CopyrightWebpackPlugin

 

##webpack.config.js

const copyrightWebackPlugin = require('./myPlugins/copyright-webpack-plugin.js')

module.exports = {
    plugins:[
        new copyrightWebackPlugin({
            'name':'Joy'
        })
    ]
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM