What Changed
The Activepieces monorepo replaced Nx with Turbo as its build orchestrator. For pieces, this means:| Old (Nx) | New (Turbo) | |
|---|---|---|
| Build config | project.json per piece | package.json scripts |
| Build command | nx build pieces-{name} | turbo run build --filter=@activepieces/piece-{name} |
| Output directory | dist/out-tsc (shared) | ./dist (local per piece) |
| Task runner | Nx executor (@nx/js:tsc) | Direct tsc -p tsconfig.lib.json && cp package.json dist/ |
| Dependencies | Inferred by Nx graph | Workspace protocol (workspace:*) in package.json |
Files affected per piece
project.json— Deleted (no longer needed)package.json— Addedbuildandlintscripts, addedmainandtypesfields, added workspace dependenciestsconfig.lib.json— UpdatedoutDir, addedrootDir,baseUrl,paths
Automatic Migration
Run the migration script to update all custom pieces at once:packages/pieces/custom/ and applies all necessary changes.
Migrate a specific piece
You can also pass a path to migrate a single piece:What the script does
For each piece, the script:- Updates
package.json— addsbuildandlintscripts, setsmainandtypesentry points, ensures@activepieces/pieces-framework,@activepieces/shared, andtslibare listed as dependencies - Updates
tsconfig.lib.json— setsoutDirto./dist, addsrootDir,baseUrl,paths, anddeclarationsettings - Creates
tsconfig.jsonif missing — extends the roottsconfig.base.json - Deletes
project.json— removes Nx configuration
Verify the Migration
After migrating, build your piece to verify everything works:packages/pieces/custom/your-piece/dist/.