webpack-2b v2.0.2
webpack-2b
webpack-2b is a wrapper of webpack. The target of this tool is creating the libs packing file in easy way.
Getting Started
First install the package: npm install webpack-2b
Building the lib file like this:
// build.js
const webpack2b = require('webpack-2b');
const libsConfig = {
libs: [
{ src: 'async', expose: 'async' },
{ src: 'lodash', expose: 'lodash' },
{ src: './src/utils.js', expose: 'bbutils' }
],
savePath: './dest/libs.js'
};
webpack2b.libsPack(libsConfig, (err) => {});
...run node build.js, the lib file will be built and saved as ./dest/libs.js,if you want to using the libs in
your page, you can do like this below:
add build action to build.js
// build.js
...
const pagesConfig = {
pages: [
{ src: ['./src/home.js'], dest: './dest/home.js' },
{ src: ['./src/profile.js'], dest: './dest/profile.js' }
],
externals: webpack2b.getExternals(libsConfig)
};
webpack2b.pagesPack(pagesConfig, (err) => {});src/home.js
// src/home.js
// you can import the lib directly
import _ from 'loash';
import async from 'async';
import BBUtils from 'bbutils';
async.map([1000, 2000, 3000], function (delay, callback) {
setTimeout(function () {
console.log(delay);
return callback(null, delay);
}, delay);
}, function (err, results) {
console.log(results);
});
...in the html
// home.html
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
</head>
<body>
<script type="text/javascript" src="./dest/libs.js"></script>
<script type="text/javascript" src="./dest/home.js"></script>
</body>
</html>just enjoy it!
API Usage
libsPack(libsConfig, webpackConfig, callback)
packing the libs file
libsConfig - Object, libs packing configlibsConfig.libs - Array, the config array, each item is the config of a liblibsConfig.[libs].src - String, the source path of the liblibsConfig.[libs].expose - String, the custom name of the liblibsConfig.savePath - String, the saving directory of the packed filelibsConfig.globalField - String, global variable(defaults: 'WEBPACK_2B', whick means window.WEBPACK_2B)webpackConfig - String, custom webpack config except entry and output, excepts entry, outputcallback - Function, callback funcion
pagesPack(pagesConfig, webpackConfig, callback)
notice the pagesPack func of the webpack-2b in version 1.x has structure bug, please use webpack-2b >=2.0.0
packing the page filespagesConfig - Object, pages packing configpagesConfig.pages - Array, the config array, each item is the config of a pagepagesConfig.[pages].src - Array, the source path of the pagepagesConfig.[pages].name - String, the file name of the pagepagesConfig.externals - Object, the externals lib which will not be packed into the dest filepagesConfig.destDir - String, the save directory of the pagewebpackConfig - String, custom webpack config except entry and output, excepts entry, output, externalscallback - Function, callback funcion
getExternals(libsConfig)
Get the externals config by libsConfiglibsConfig - Object, libs packing configreturn - the externals which will be used in pagesPack
Examples
Just see examples folder
license
MIT