webpack-2b
v2.0.2
Published
a wrap of webpack for libs packing
Downloads
5
Maintainers
Readme
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