diff --git a/readme.md b/readme.md index 773410e..c819898 100644 --- a/readme.md +++ b/readme.md @@ -128,6 +128,46 @@ webpack 负责构建,根据 esmodule、commonjs 规范,找到对应的依赖 esbuild 同 webpack 一样,速度更快,但是 production 稳定性待考究 +## 移花接木 cjs(.js) + es(d.ts) 小操作 + +场景:monorepo 架构下,某些基础子包作为工具包,无需降级发布到 browser 环境,例如 nestjs 外部依赖,如果使用 commonjs 规范开发 ts,再走 tsc 编译,生成的 `index.d.ts` IDE 无法进行代码智能提示。 + +- 利用 `tsc 构建`, `cjs` 和 `es` 规范的两个编译版本 +- 在 `package.json` 入口默认使用 `cjs` 规范的 `js` 文件,同时,types 文件使用 `es` 规范的 `d.ts` 文件 + +```json +// tsconfig.build-cjs.json +{ + "compilerOptions": { + "module": "CommonJS", + "outDir": "./dist/cjs" + } +} +// +``` + +再来个 esmodule 规范的 + +```json +// tsconfig.build-es.json +{ + "compilerOptions": { + "outDir": "./dist/es" + } +} +``` + +骚操作来了 + +```json +// package.json +{ + "name": "@demo/util", + "main": "dist/cjs/index", + "types": "dist/es/index.d.ts" +} +``` + # 坑点 ## vite 项目引包报错