此包目前使用源码模式(Source-First)配置,直接引用 TypeScript 源文件。
{
"main": "src/index.ts",
"types": "src/index.ts",
"exports": {
".": {
"import": "./src/index.ts",
"require": "./src/index.ts"
}
},
"files": ["src"]
}
Monorepo Workspace 优化 - 在 pnpm workspace 中,消费者项目可以直接引用源码,无需等待编译
更好的 IDE 支持 - TypeScript 源码提供完整的类型信息和 JSDoc 注释
更快的开发迭代 - 修改源码后无需重新构建即可在消费者项目中看到变化
现代构建工具支持 - Vite、Webpack、esbuild 等工具可以直接处理 TypeScript
如果需要将此包发布到 npm,需要以下更改:
{
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"import": "./dist/index.js",
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
}
},
"files": ["dist"]
}
确保 declaration 和 declarationMap 已启用:
{
"compilerOptions": {
"declaration": true,
"declarationMap": true,
"outDir": "./dist"
}
}
# 运行构建
pnpm build
# 验证 dist 目录
ls -la dist/
# 发布到 npm
pnpm publish
包提供了以下编译相关脚本:
# 构建包(输出到 dist/)
pnpm build
# 开发模式(监听文件变化)
pnpm dev
# 类型检查(不生成文件)
pnpm typecheck
| 特性 | Workspace 源码模式 | NPM 编译模式 |
|---|---|---|
| 入口 | src/index.ts |
dist/index.js |
| 发布 | 不发布 | 发布到 npm |
| 类型 | 源码 .ts 文件 | .d.ts 声明文件 |
| 用途 | Monorepo 内部 | 公共包 |
| 构建 | 可选 | 必需 |
如果需要从源码模式迁移到编译模式:
package.json 中的 main, types, exports, filestsconfig.json 启用 declaration 和 declarationMappnpm build 生成编译产物dist/ 目录结构files 字段为 ["dist"]@workspace:*)