babel-preset-futagozaryuu

Futago-za Ryuu's Babel preset

Usage no npm install needed!

<script type="module">
  import babelPresetFutagozaryuu from 'https://cdn.skypack.dev/babel-preset-futagozaryuu';
</script>

README

CI npm version dependencies History License

This is a Babel preset of other presets and plugins that I most commonly use.

  • From v2.12, this preset is using the @babel/* dependencies for Babel 7+
  • From v3 this preset is using the proposal plugins directly as Babel 7 dropped the stage presets

installation

$ npm install --save-dev babel-preset-futagozaryuu

usage

Put the following into your .babelrc file:

{
    "presets": [ "futagozaryuu" ]
}

or on the CLI

$ babel src --out-dir lib --presets futagozaryuu

configuration

You can see the complete list of options in babel-preset-futagozaryuu/lib/config/default-options.js.

{
    "presets": [
        [ "futagozaryuu", {

            // set root directory for `babel-plugin-module-resolver`
            "disableResolver": false,
            "root": [ "src" ],

            // disable the use of `@babel/preset-stage-*` plugins
            // (anything not a number between 0 to 3 is the same)
            "stage": 4,

            // Target a spefic version of node
            // (alternative: `package.json#engines.node`)
            "node": 6,

            // Blacklisting the var/const transform
            "exclude": [ "transform-es2015-block-scoping" ],

            // Blacklisting ES Modules transpilation
            "modules": false,

            // re-enable the use of `regenerator`
            "regenerator": true

        } ]
    ]
}

the useBuiltIns option

When using the option useBuiltIns with values usage or entry, ensure that you:

  1. Have the corejs option enabled (by default this is set to { version: 3, proposals: true })
  2. Include the dependencies core-js and regenerator-runtime in your published package

recommendation for vs code users

Adding the following files (and settings) will ensure that VS Code can find your ES6+ files even if you are using babel-plugin-module-resolver to change the root path of your module lookups during transpile.

This is based on a comment in tleunen/babel-plugin-module-resolver#92 by @jgoux.

.vscode/settings.json:

{
    "path-intellisense.mappings": {
        "/": "${workspaceRoot}/src"
    }
}

src/jsconfig.json:

{
    "compilerOptions": {
        "baseUrl": "./",
    }
}

versioning

I have tried to follow semver versioning, but from v2.19 I will follow these rules:

2.18.0 = RELEASE.REVISION.PATCH

  1. RELEASE is incremented each time a new major version of Babel is supported
  2. PATCH is only incremented when
    • a bug is fixed
    • docs are updated between revisions
    • dependency updates between revisions
  3. REVISION is incremented for all other changes
  4. PATCH is reset when REVISION increments

license

Copyright © 2017+ Futago-za Ryuu, https://github.com/futagoza
Released under the MIT License, http://opensource.org/licenses/MIT