// packages/math-helpers/package.json
{
"scripts": {
"build": "tsup src/index.ts --format cjs --dts"
}
}
配置 Turborepo:將 dist 資料夾添加到 .gitignore,並在 turbo.json 中的 build 任務中指定輸出。
// turbo.json
{
"pipeline": {
"build": {
"outputs": ["dist/**"]
}
}
}
更新套件的入口點:在 package.json 中將 main 指向 ./dist/index.js,types 指向 ./dist/index.d.ts。
// packages/math-helpers/package.json
{
"main": "./dist/index.js",
"types": "./dist/index.d.ts"
}
設定任務依賴:使用 dependsOn 確保在執行 build 任務時,先建置套件再建置應用程式。
// turbo.json
{
"pipeline": {
"build": {
"dependsOn": ["^build"]
}
}
}
設定開發腳本:為套件添加 dev 腳本,以便在開發過程中監聽文件變化並自動重建。
// packages/math-helpers/package.json
{
"scripts": {
"build": "tsup src/index.ts --format cjs --dts",
"dev": "npm run build --watch"
}
}
Changesets 常用指令:
changeset
changeset version
changeset publish
整合發布流程:在根目錄的 package.json 中添加 publish-packages 腳本,整合建置、測試和發布流程。
// package.json
{
"scripts": {
"publish-packages": "turbo run build lint test && changeset version && changeset publish"
}
}
// packages/math-helpers/package.json
{
"scripts": {
"build": "tsup src/index.ts --format cjs --dts"
}
}
// turbo.json
{
"pipeline": {
"build": {
"outputs": ["dist/**"]
}
}
}
// packages/math-helpers/package.json
{
"main": "./dist/index.js",
"types": "./dist/index.d.ts"
}
// turbo.json
{
"pipeline": {
"build": {
"dependsOn": ["^build"]
}
}
}
// packages/math-helpers/package.json
{
"scripts": {
"build": "tsup src/index.ts --format cjs --dts",
"dev": "npm run build --watch"
}
}
// package.json
{
"scripts": {
"publish-packages": "turbo run build lint test && changeset version && changeset publish"
}
}