https://github.com/aretecode/babel-loader-builder
Minimal webpack babel loader builder for use as a string or as query or rules object. Mildly opinionated defaults
https://github.com/aretecode/babel-loader-builder
Last synced: 11 months ago
JSON representation
Minimal webpack babel loader builder for use as a string or as query or rules object. Mildly opinionated defaults
- Host: GitHub
- URL: https://github.com/aretecode/babel-loader-builder
- Owner: aretecode
- Created: 2016-12-25T00:36:07.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-02-19T07:10:07.000Z (almost 9 years ago)
- Last Synced: 2024-10-29T21:11:25.328Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 10.1 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# πΌποΈπ babel-loader-builder
[](https://badge.fury.io/js/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
```javascript
import babelBuilder from 'babel-loader-builder'
const babelLoaderString = babelBuilder({cacheDirectory: false, moduleExports: false})
// ...
loaders: [
{
test: /\.js?$/,
loaders: babelLoaderString,
}
],
// ...
```
## as an object
```javascript
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
```javascript
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
- [x] 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