Yoshi provides its own preset for full-stack, client or Node.js projects. It is pre-configured, maintained and tuned for the current state of Yoshi.
Configure yoshi
to use its built-in preset by adding the following to your package.json
:
{
"babel": {
"presets": ["yoshi"]
}
}
targets
: Avoid redundant transformations if specified targets already support some of ESNext features. Read more. By default, if notargets
provided, it will compile for all targets (node
on test environment).modules
(defaults to"commonjs"
intest
environment and to false inproduction
anddevelopment
): Enable transformation of ES6 module syntax to another module type. Read more. Setfalse
to ignore module transforms.ignoreReact
(default:false
): Ignores plugins and presets related to React.debug
(default:false
): Outputs the targets/plugins used according to specified targets. Read more.
The preset behaves differently according to the environment. The environment is determined by checking process.env.BABEL_ENV
, process.env.NODE_ENV
and use development
as the default if none was supplied.
-
NODE_ENV = 'test'
- Transpile for current node version for fast testing in mind. -
NODE_ENV = 'development'
- Transpile for modern browsers for fast builds in mind. -
NODE_ENV = 'production'
- Optimize bundle, compile for all possible targets fromIE10
, prepare for uglifycation, with full browsers support, runtime optimization and small bundle size in mind.
- preset-env for ESNext to ES5 transform. Moreover, you can customize current targets and module type to build for. Will use all targets and commonjs module type as a default values. Configured with target
node
fortest
environment. - preset-react for JSX and Flow transforms.
- transform-runtime externalize references to helpers and builtins, automatically polyfilling your code without polluting globals.
- transform-class-properties.
- transform-decorators (legacy).
- dynamic-import-node - Babel plugin to transpile import() to a deferred require(), for node.
- babel-plugin-syntax-object-rest-spread Allow the syntax of Object
{ ...rest, ...spread }
- syntax-dynamic-import - Allow the syntax of dynamic imports since all transformations done by webpack.
- babel-plugin-syntax-object-rest-spread Allow the syntax of Object
{ ...rest, ...spread }
- syntax-dynamic-import - Allow the syntax of dynamic imports since all transformations done by webpack.
- remove-prop-types only for production builds.
- babel-plugin-transform-object-rest-spread - Transform Object
{ ...rest, ...spread }