y-common-utils
Version:
工具库
80 lines (64 loc) • 2.76 kB
JavaScript
import { defineConfig } from 'rollup';
import json from '@rollup/plugin-json';
import nodeResolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import typescript from '@rollup/plugin-typescript';
import babel from '@rollup/plugin-babel';
import { terser } from 'rollup-plugin-terser';
const commonConfig = defineConfig({
// sourcemap: true,
plugins: [
json(),
nodeResolve(),
commonjs(),
typescript({
exclude: /\.test\.tsx?$/i,
tsconfig: './tsconfig.json',
}),
babel(),
terser(),
],
});
const config = defineConfig([
{
input: 'src/index.ts',
output: [
{
file: 'dist/index.js',
// iife
format: 'esm',
// exports: "default",
name: 'index',
},
],
...commonConfig,
},
]);
// 如果不依赖别的库下面两个可以不安装
// rollup 编译源码中的模块引用默认只支持 ES6+ 的模块方式 import / export
// 然而大量的 npm 模块是基于 commonjs 模块方式,这就导致了大量 npm 模块不能直接编译使用
// 所以辅助 rollup 编译支持 npm 模块和 commonjs 模块方式的插件就应运而生
// @rollup/plugin-node-resolve: 解析引入的 node 库
// @rollup/plugin-alias
// rollup 默认是不支持 commonjs 模块的, 自己写的时候可以尽量避免使用 commonjs 模块的语法, 但有些外部库的是 cjs 或者 umd (由 webpack 打包的),所以使用这些外部库就需要支持 commonjs 模块
// @rollup/plugin-commonjs: 将 commonjs 语法转成 es5
// rollup-plugin-filesize: 显示打包后文件的大小
// rollup-plugin-json: 用于解析 json 文件, 可以直接在 js, ts 文件中直接引入 json 文件
// tslib: 这是 @rollup/plugin-typescript 插件依赖的库必须安装
// @rollup/plugin-typescript: 编译 ts 文件
// @rollup/plugin-replace: 在打包的时候把目标字符串替换 (replace({ 'process.env.NODE_ENV': JSON.stringify(env) }))
// autoprefixer: postcss 的插件, 给 css 添加兼容性前缀
// cssnano: postcss 的插件, css 压缩
// rollup-plugin-postcss: 可以在 js 文件中 import 'styles.scss'
// @babel/core
// @babel/preset-env
// @babel/preset-react
// @babel/preset-typescript
// @rollup-plugin-babel: rollup 的 babel 插件, es6 转 es5
// .babelrc --> { "presets": [["@babel/preset-env"]] }
// rollup-plugin-terser: 对打包的 js 进行压缩
// rollup-plugin-serve
// rollup-plugin-serve
// "build": "rollup -cw"
// rollup -c === rollup --config, 用于指定配置文件, rollup -c rollup.config.js, 如果配置文件名为 rollup.config.js, 则可以省略文件名
export default config;