1.0.1 • Published 1 year ago

@sakurasz/mini-webpack v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

mini-webpack

a simple webpack achieve

mini-webpack can do these now

  • supports package
  • supports package watch
  • supports loader
  • supports plugins
  • adding hrm....

UseAge

build.js

//you can see example to see a simply use 
//build.js use this file to pack your program
const { webpack } = require('../dist/mini-webpack.cjs.js') //import module
const webpackConfig = require('./webpack.config.js') //import your config
const compiler = webpack(webpackConfig) //create a webpack compiler
compiler.run((err, result) => { //use run function to compile when finished will call callback
})

webpack.config.js

const { load1, load2 } = require('./loaders') //use your loaders
const { WebPackRunPlugin, WebPackDonePlugin } = require('./plugin') //use your plugins
module.exports = {
    entry: './src/main.js', //pack input
    output: {               //pack output
        path: './dist',
        filename: 'bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                use: [load1,load2]
            }
        ]
    },
    plugins: [new WebPackRunPlugin(), new WebPackDonePlugin()]
}

use loader

//you can use loader in config
//define your function loader like this
function load1(source) { //source is  code souce when compile
    return source + '\n //add load1'
}

use plugins

//you can use plugins in config
//define your class plugin like this
class WebPackRunPlugin { //plugin class must have a method called apply
    apply(compiler) { //argument is complier when complie
        compiler.hooks.run.tap('plugin1', () => {
            console.log('run plugin run');
        })
    }
}