import babel from "@rollup/plugin-babel" import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import builtins from 'rollup-plugin-node-builtins'; import typescript from "@rollup/plugin-typescript"; import globals from 'rollup-plugin-node-globals'; export default { input: 'src/main.ts',//入口文件 output: { file: 'dist/bundle.js',//打包后的存放文件 format: 'cjs',//输出格式 amd es6 iife umd cjs name: 'test',//如果iife,umd需要指定一个全局变量 // sourcemap: true,//是否生成sourcemap // external: ['lodash']//外部依赖,不会被打包 }, plugins: [ typescript(), // 编译typescript commonjs(), globals(), builtins(), resolve(), // 允许我们加载第三方模块 babel({ exclude: 'node_modules/**', // 只编译我们的源代码 babelHelpers: 'bundled', presets: [ [ "@babel/env", { "modules": false // 设置为false,否则babel会在rollup有机会执行其操作之前导致我们的模块转化为commonjs } ] ] }) ],//插件 // external: ['lodash']//外部依赖,不会被打包 }
入口文件 main.ts
import * as events from "events" export class Foo extends events.EventEmitter{ }
测试内容
const bundle = require("./bundle"); const b = new bundle.Foo() b.on("test",()=>{console.log(1);}) b.emit("test")