rollup-plugin-commonjs
2023年03月05日
一、认识
@rollup/plugin-commonjs 将 CommonJS
格式的代码转换为 ESM
格式, 用于兼容 CommonJS
打包
虽然 Rollup
能够打包输出出 CommonJS
格式的产物,但对于输入给 Rollup
的代码并不支持 CommonJS
,仅仅支持 ESM
。你可能会说,那我们直接在项目中统一使用 ESM
规范就可以了啊,这有什么问题呢?需要注意的是,我们不光要考虑项目本身的代码,还要考虑第三方依赖。目前为止,还是有不少第三方依赖只有 CommonJS
格式产物而并未提供 ESM
产物
二、语法
import commonjs from "@rollup/plugin-commonjs";
import resolve from "@rollup/plugin-node-resolve";
export default {
input: ["src/index.js"],
output: [
{
dir: "dist/es",
format: "esm",
},
{
dir: "dist/cjs",
format: "cjs",
},
],
plugins: [resolve(), commonjs()],
};