По мне, это самый удобный вариант монорепы без отдельного шага сборки:
• pnpm workspaces и установка через workspace:*
• внутренние пакеты, которые экспортируют *.ts файлы
• опционально: pnpm publishConfig, чтобы при публикации подменять экспорты на *.js
{
"name": "@internal/foo",
"version": "1.0.0",
// Экспорт исходников TypeScript
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts"
},
// Экспорт собранного кода при публикации
"publishConfig": {
"access": "public",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": "./dist/index.js"
}
},
"dependencies": {
// Установка других внутренних пакетов из workspace
"@internal/bar": "workspace:*"
}
}
@WebDev_Plus