rollup 开发 ts 模块总结

使用 rollup.config.ts 文件作为 rollup 的配置

tsconfig.json
    "module": "esnext",   

    "moduleResolution": "node",  
你需要的开发依赖是
"@rollup/plugin-typescript": "^11.0.0",
"tslib": "^2.4.1",
"typescript": "^4.9.4"
版本为示例版本,建议安装最新的。
output配置

建议同时输出 es 和 cjs 两个格式

# rollup.config.ts
output: [
        {
            file: './dist/bundle.ejs',
            format: 'es',
        },
        {
            file: './dist/bundle.cjs',
            format: 'cjs',
        }
    ]

在 package.json 中配置

  "main": "./dist/bundle.cjs",
  "module": "./dist/bundle.ejs",

这样即可使用 require 导入 ,也可以使用 import 导入。

编译脚本
# package.json
"scripts": {
    "build": "rollup --config rollup.config.ts --configPlugin typescript"
  },

编译类型声明文件

在 rollup.config.ts 的插件中配置如下

plugins: [
        del({targets: 'dist/*'}),
        typescript({
            compilerOptions: {declaration: true, outDir: './dist'},
            include: "src/**/*"
        })
    ],

排除模块

在 rollup.config.ts 的插件中配置如下

// input
// output
// plugins
external: ['axios']

建议依赖格式

"peerDependencies": {
    "axios": "^1.2.2"
  }

使用 jest 测试

需要的依赖:
jest
@types/jest

防止编译test目录,可以这样做

# rollup.config.ts
plugins: [
        del({targets: 'dist/*'}),
        typescript({
            compilerOptions: {declaration: true, outDir: './dist'},
            include: "src/**/*"
        })
    ],