企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 使用 Rollup 和 Babel --- 许多开发者在他们的项目中使用 [Babel](https://babeljs.io/),因此他们可以用上那些未被浏览器和 Node.js 支持的未来的 JavaScript 特性。 最容易的办法去同时使用 Babel 和 Rollup 是使用 [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel). 安装它: ```bash npm i -D rollup-plugin-babel ``` 将它添加到 `rollup.config.js` 里面: ```js // rollup.config.js import resolve from 'rollup-plugin-node-resolve'; import babel from 'rollup-plugin-babel'; export default { entry: 'src/main.js', format: 'cjs', plugins: [ resolve(), babel({ exclude: 'node_modules/**' // 仅仅转译我们的源码 }) ], dest: 'bundle.js' }; ``` 在 Babel 将编译你的代码前,它需要被配置。新建一个文件 `src/.babelrc`: ```js { "presets": [ ["latest", { "es2015": { "modules": false } }] ], "plugins": ["external-helpers"] } ``` 这里有几个关于配置的与不常不同的事情。首先我们设置 `"modules": false`,否则 Babel 会在 Rollup 有机会做处理之前,将我们的模块转成 CommonJS,导致 Rollup 的一些处理失败。 第二,我们使用 `external-helpers` 插件,它允许 Rollup 在文件束前仅引用一次任何的 'helpers' 函数,而不是在每个使用这些 'helpers' 的模块里都引入一遍(一般是默认行为)。 第三,我们将 `.babelrc` 文件放到 `src` 目录下,而非项目根目录。这允许我们可以有另一个 `.babelrc` 文件给一些别的操作,像测试,如果我们真的在后面需要的话 - 通常给不同的任务做不同的配置会更好。 现在,我们运行 rollup 前,我们需要安装 `latest` preset 和 `extternal-helpers` 插件: ```bash npm i -D babel-preset-latest babel-plugin-external-helpers ``` 现在运行 Rollup 会创建一个文件束...除了我们并没有使用任何 ES2015 的特性。让我们改一下,编辑 `src/main.js`: ```js // src/main.js import answer from 'the-answer'; export default () => { console.log(`the answer is ${answer}`); } ``` 使用 `npm run build` 运行 Rollup, 同时检查一下文件束: ```js 'use strict'; var index = 42; var main = (function () { console.log('the answer is ' + index); }); module.exports = main; ``` *** > 原文:https://rollupjs.org/#using-rollup-with-babel