babel-loader-builder

0.2.0 • Public • Published

🗼🏋️🏗 babel-loader-builder

npmversion

purpose

an easy string or object babel loader

installation

npm i babel-loader-builder --save-dev

usage

(in webpack.config)

as a string

  import babelBuilder from 'babel-loader-builder'
  const babelLoaderString = babelBuilder({cacheDirectory: false, moduleExports: false})
 
  // ...
  loaders: [
    {
      test: /\.js?$/,
      loaders: babelLoaderString,
    }
  ],
  // ...

as an object

import babelBuilder from 'babel-loader-builder'
const babelLoaderObject = babelBuilder({asObject: true, reactjsx: true, cacheDirectory: false})
 
// ...
loaders: [
  {
    test: /\.js?$/,
    loaders: 'babel-loader',
    query: loader,
  }
],
// ...

with inferno, in es5

var babelBuilder = require('babel-loader-builder')
var babelLoaderObject = babelBuilder({
  latest: true,
  stringify: true,
  inferno: {
    import: true,
    compat: false,
  },
})
 
// ...
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

Readme

Keywords

none

Package Sidebar

Install

npm i babel-loader-builder

Weekly Downloads

2

Version

0.2.0

License

MIT

Last publish

Collaborators

  • aretecode