UNPKG

y-common-utils

Version:

工具库

80 lines (64 loc) 2.76 kB
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;