本篇主要以最简单的配置文件,来编译ES6代码文件
iife
格式(立即执行的函数格式)demo例子
https://github.com/chenshenhai/rollupjs-note/blob/master/demo/chapter-01-01/
npm inpm run build
.├── build # 编译脚本│ └── rollup.config.js├── dist # 编译结果│ └── index.js├── example # HTML引用例子│ └── index.html├── package.json└── src # ES6源码└── index.js
安装对应编译的npm模块
npm i --save-dev rollupnpm i --save-dev @rollup/plugin-buble
rollup
模块是rollup编译的核心模块@rollup/plugin-buble
模块是rollup的ES6编译插件babel
类似,是简化版的babel
babel
快一些ES6+
的语法使用,后续再讲讲其他扩展插件./build/rollup.config.js
const path = require('path');const buble = require('@rollup/plugin-buble');const resolve = function(filePath) {return path.join(__dirname, '..', filePath)}module.exports = {input: resolve('src/index.js'),output: {file: resolve('dist/index.js'),format: 'iife'},plugins: [buble()],}
./package.json
配置编译执行脚本{"scripts": {"build": "node_modules/.bin/rollup -c ./build/rollup.config.js"},}
./src/index.js
const arr1 = [1,2,3];const arr2 = [4,5,6];const result = [...arr1, ...arr2];console.log(result);
npm run build
./dist/
下(function () {'use strict';var arr1 = [1,2,3];var arr2 = [4,5,6];var result = arr1.concat( arr2);console.log(result);}());
本篇只是最简单的ES6语法编译,但是实际项目中肯定会用到ES6+以上的语法。同时本篇的@rollup/plugin-buble
插件只是能编译简单的ES6语法,对于更加复杂的ES6+(包括ES7,ES8)等语法,就需要@rollup/plugin-babel
插件结合babel
原生编译插件去处理,在下一章会做详细的编译配置介绍。