🗼🏋️🏗 babel-loader-builder
purpose
an easy string or object babel loader
installation
npm i babel-loader-builder --save-dev
usage
(in webpack.config
)
as a string
const babelLoaderString = // ... loaders: test: /\.js?$/ loaders: babelLoaderString // ...
as an object
const babelLoaderObject = // ...loaders: test: /\.js?$/ loaders: 'babel-loader' query: loader // ...
with inferno, in es5
var babelBuilder = var babelLoaderObject = // ...loaders: test: /\.js?$/ loaders: 'babel-loader' query: loader // ...
defaults
var defaults = {
latest: false,
es2015: true,
hot: false,
react: false,
reactjsx: false,
inferno: false,
asObject: false,
production: false,
babelrc: false,
cacheDirectory: true,
babili: false,
moduleExports: true,
async: true,
decorators: true,
classProperties: true,
objectSpread: true,
stringify: false,
sourceMaps: true,
stage: '0',
plugins: [],
presets: [],
}
params
- stringify: as json stringified option - for use in query or in loader string
todo
- show required installations if some are missing
- if they are missing, write out a line that shows the installation npm i command
- stringify the object queries such as inferno for usage as a string
- show if some options require being objects (if ^ cannot be strings)
- just loop instead of Object.assign, for compatibility, or use polyfill but that seems like overkill
- fill out more params explanation
- add .env option
- add hydrating from string
- add functions as properties on the function to manipulate a generated loader
- reactjsx: true
- .remove('reactjsx')
- could also have config option that would just return the config with defaults