0.0.0 • Published 7 years ago

flexbuilder v0.0.0

Weekly downloads
2
License
UNLICENSED
Repository
github
Last release
7 years ago

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

NameRequiredDescription
rootYesRoot of the project. Use __dirname
devYesShould run in dev mode? It's best to use !!argv.dev
startYes if target is an app and server code needs to be run in dev moderelative path to the distribution server file
libraryYes if target is a libraryName of the library
sourcesYes{ 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
aliasNo{ 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.
defineNo{ server: {}, client: {} } Use to define any extra compile-time variables.
devServerPortYes if using webpack dev serverYou must explicitly provide a port for webpack dev server