babel-preset-hamal
Usage
Install
npm i --save-dev @nicolaz/babel-preset-hamal
babelrc
{
"presets": [
"@nicolaz/babel-preset-hamal"
]
}
默认选项:{ react: true, debug: false }
。
默认已开启 react-hot-loader
,项目使用时需要导入 react-hot-loader 到入口模块的顶部,npm link
调试时需要独立安装。
如果为非 React 项目,可以关闭 react
选项来移除 preset-react
和相关插件。
{
"presets": [
["@nicolaz/babel-preset-hamal", {"react": false}]
]
}
开启 debug
参数,可以打开 preset-env
的 debug 选项,根据 browserslist 配置,在编译时会输出导入的 corejs 模块等信息。
内置的 presets 和 plugins
presets
plugins
@babel/plugin-proposal-class-properties
@babel/plugin-transform-runtime
Polyfill
需要手动在项目入口顶部导入 core-js/stable
和 regenerator-runtime/runtime
。安装该 preset 时,已包含这 2 个模块,直接导入即可。
import 'core-js/stable';
import 'regenerator-runtime/runtime';
在 npm link
调试时需要独立安装。
考虑到对项目的完整编译和适配浏览器目标,preset-env
的 useBuiltIns
选项使用了 entry
。usage
固然很好,可以按需导入 corejs,但可能会忽略安装在 node_modules
下的第三方模块的适配,除非第三方模块已经完全考虑了这种情况。
Runtime
已开启,且包含 @babel/runtime
。但未开启 corejs
选项,否则会完全转换 ES6+ 的所有 API 为沙盒模式,而不是根据 browserslist。
Debug & Publish
npm link
# in project directory
npm link @nicolaz/babel-preset-hamal
# publish
# 1
npm version <major|minor|patch>
# 2
npm publish --access=public