作用
Rollup 是一个用于 JavaScript 的模块打包器,它将小段代码编译成更大更复杂的东西,例如库或应用程序
特色
1.没有用到的代码在打包的时候会去掉
2.默认适用于es语法
3.output 用数组可以生成适用于多种语法的不同文件,es,cjs,iife
资料
打包
"scripts": {
"build": "rollup -c rollup.config.js"
},
1.代码分割样板
import('./foo').then(({foo})=>{
foo()
})
output:{
dir:'./dist',
format:'cjs'
},
2.读取json文件
{
"name":"yy",
"age":18
}
import user from './user.json'
console.log(user)
import json from "@rollup/plugin-json"
plugins:[json()]
3.第三方cjs包转esm
import commonjs from '@rollup/plugin-commonjs'
plugins:[commonjs]
4.本地代码为es6转es5
import { babel } from '@rollup/plugin-babel';
plugins:[babel(
{
presets: ['@babel/preset-env']
}
)]
const a=()=>{
console.log("ccc")
}
a()
var a = function a() {
console.log("ccc");
};
a();
5.第三方包引入不打入内部文件,提示用户下载第三方包
external:['lodash'],
"peerDependencies": {
"lodash": "^4.17.21"
},
6.第三方包代码打入本地文件
import resolve from '@rollup/plugin-node-resolve'
plugins:[resolve()]
7.打包时压缩文件
import {terser} from "rollup-plugin-terser"
output:[{
file:'./dist/bundle.es.min.js',
format:'es',
plugins:[terser()]
}]