Mau*_*ice 5 javascript rollup babeljs babel-polyfill babel-preset-env
使用 Rollup 时,如何让它同时@babel/preset-env与 和 一起使用@babel/polyfill?提到要添加的文档,useBuiltIns: 'usage'但是当我这样做时require is not defined,控制台中出现错误。以下是我到目前为止所拥有的;有更推荐的设置吗?
汇总.config.js:
import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import { terser } from 'rollup-plugin-terser';
const dist = './dist/';
const name = 'focusoverlay';
export default {
input: './src/index.js',
output: [
{
file: `${dist}${name}.cjs.js`,
format: 'cjs'
},
{
file: `${dist}${name}.esm.js`,
format: 'esm'
},
{
name: 'FocusOverlay',
file: `${dist}${name}.js`,
format: 'umd'
}
],
plugins: [
resolve(),
babel({ exclude: 'node_modules/**' }),
terser()
]
};Run Code Online (Sandbox Code Playgroud)
.babelrc:
{
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage",
"modules": false,
"targets": {
"browsers": "> 0.25%, not op_mini all, not dead, IE 10-11",
"node": 6
}
}
]
]
}
Run Code Online (Sandbox Code Playgroud)
Mau*_*ice 11
我通过删除我的.babelrc文件并将我的 babel 配置完全移动到rollup.config.js. 然后我还包含了rollup-plugin-commonjs将 CJS 模块转换为 ES6的插件。我的最终配置示例:
import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import { terser } from 'rollup-plugin-terser';
const dist = './dist/';
const name = 'focusoverlay';
export default {
input: './src/index.js',
output: [
{
file: `${dist}${name}.cjs.js`,
format: 'cjs'
},
{
file: `${dist}${name}.esm.js`,
format: 'esm'
},
{
name: 'FocusOverlay',
file: `${dist}${name}.js`,
format: 'umd'
}
],
plugins: [
resolve(),
babel({
exclude: 'node_modules/**',
presets: [
[
'@babel/env',
{
modules: 'false',
targets: {
browsers: '> 1%, IE 11, not op_mini all, not dead',
node: 8
},
useBuiltIns: 'usage'
}
]
]
}),
commonjs(),
terser()
]
};
Run Code Online (Sandbox Code Playgroud)
完整配置在这里。当然,仍然欢迎改进建议。
| 归档时间: |
|
| 查看次数: |
6565 次 |
| 最近记录: |