flexbuilder
v0.0.0
Published
A generic builder
Downloads
8
Maintainers
Readme
FlexBuilder
- A module bundler, ESNext builder and development tool, using webpack, babel and nodemon
Installation
yarn add --dev flexbuilder
or
npm install --dev flexbuilder
Install all necessary peer dependencies. Except react
and react-dom
, the rest should be installed as dev dependencies.
Usage
Add a build.js file at the root
build.js
process.on('unhandledRejection', (reason, p) => { throw reason });
require('babel-polyfill');
const builder = require('flexbuilder').default;
const argv = require('yargs').argv;
builder({
root: __dirname,
dev: !!argv.dev,
// options documented below
});
Add these scripts to the package.json
file:
package.json
{
"scripts": {
"dev": "node ./build --dev",
"build": "node ./build"
}
}
If you have symlinked modules in your project (only during development), add node's --preserve-symlinks
flag to the commands above.
package.json (for symlinked modules)
{
"scripts": {
"dev": "node --preserve-symlinks ./build --dev",
"build": "node --preserve-symlinks ./build"
}
}
Options
| Name | Required | Description |
| --------------|:---------:| -----:|
| root | Yes | Root of the project. Use __dirname
|
| dev | Yes | Should run in dev mode? It's best to use !!argv.dev
|
| start | Yes if target is an app and server code needs to be run in dev mode | relative path to the distribution server file |
| library | Yes if target is a library | Name of the library |
| sources | Yes | { server: {}, client: {} }
Each key in the server or client object is used as the destination file name. Each value is a relative path to the source directory |
| alias | No | { server: {}, client: {} }
Aliases to be used to resolve modules on the server and/or client. It's best to use require.resolve
instead of an absolute path here. |
| define | No | { server: {}, client: {} }
Use to define any extra compile-time variables. |
| devServerPort | Yes if using webpack dev server | You must explicitly provide a port for webpack dev server |