the next generation of template
The issue is that Turborepo expects a specific structure. Here's the correct setup:
npm run gen default for turbo repo apps/
. for root custom test/
turbo-generators/
├── package.json
├── turbo/
│ └── generators/
│ ├── config.ts # Main config file
│ └── templates/
│ ├── component.hbs
│ └── package.hbsThe key is: Generators must be inside turbo/generators/ directory!
cd turbo-generators
mkdir -p turbo/generators
mv config.ts turbo/generators/
mv templates turbo/generators/{
"name": "turbo-generators",
"version": "1.0.0",
"type": "module",
"dependencies": {
"@turbo/gen": "^2.6.3"
},
"exports": {
".": "./turbo/generators/config.ts"
}
}// turbo/generators/config.ts
import type { PlopTypes } from "@turbo/gen";
export default function generator(plop: PlopTypes.NodePlopAPI): void {
plop.setGenerator("component", {
description: "Create a new component",
prompts: [
{
type: "input",
name: "name",
message: "Component name?",
},
],
actions: [
{
type: "add",
path: "src/components/{{pascalCase name}}.tsx",
templateFile: "templates/component.hbs", // Relative to config.ts
},
],
});
}{
"$schema": "https://turbo.build/schema.json",
"generators": {
"source": "git+https://github.com/your-org/turbo-generators.git"
}
}{
"generators": {
"source": "../turbo-generators"
}
}Or install it locally:
# In your monorepo
npm install ../turbo-generators --save-devThen:
{
"generators": {
"source": "node_modules/turbo-generators"
}
}cd your-monorepo
turbo genYou should now see your generators listed!
Option A - Local Path:
// turbo.json in your monorepo
{
"generators": {
"source": "../turbo-generators"
}
}Option B - npm link:
cd turbo-generators
npm link
cd ../your-monorepo
npm link turbo-generatorsThe main issue was the missing turbo/generators/ folder structure. Turborepo looks specifically for that path! 🎯
