aico-cli 2.1.7 → 2.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli/README.md +1 -1
- package/bin/cli/cli.js +8672 -3345
- package/bin/cli/package.json +1 -1
- package/bin/cli/sdk-tools.d.ts +41 -5
- package/dist/chunks/simple-config.mjs +1 -1
- package/package.json +2 -2
- package/templates/skills/antfu/SKILL.md +222 -0
- package/templates/skills/antfu/references/antfu-eslint-config.md +328 -0
- package/templates/skills/antfu/references/app-development.md +60 -0
- package/templates/skills/antfu/references/github-actions.md +68 -0
- package/templates/skills/antfu/references/gitignore.md +29 -0
- package/templates/skills/antfu/references/library-development.md +85 -0
- package/templates/skills/antfu/references/monorepo.md +126 -0
- package/templates/skills/antfu/references/vscode-extensions.md +34 -0
- package/templates/skills/nuxt/GENERATION.md +5 -0
- package/templates/skills/nuxt/SKILL.md +55 -0
- package/templates/skills/nuxt/references/advanced-hooks.md +289 -0
- package/templates/skills/nuxt/references/advanced-layers.md +299 -0
- package/templates/skills/nuxt/references/advanced-module-authoring.md +554 -0
- package/templates/skills/nuxt/references/best-practices-data-fetching.md +357 -0
- package/templates/skills/nuxt/references/best-practices-ssr.md +355 -0
- package/templates/skills/nuxt/references/core-cli.md +263 -0
- package/templates/skills/nuxt/references/core-config.md +162 -0
- package/templates/skills/nuxt/references/core-data-fetching.md +236 -0
- package/templates/skills/nuxt/references/core-deployment.md +224 -0
- package/templates/skills/nuxt/references/core-directory-structure.md +269 -0
- package/templates/skills/nuxt/references/core-modules.md +292 -0
- package/templates/skills/nuxt/references/core-routing.md +226 -0
- package/templates/skills/nuxt/references/features-components-autoimport.md +328 -0
- package/templates/skills/nuxt/references/features-components.md +264 -0
- package/templates/skills/nuxt/references/features-composables.md +276 -0
- package/templates/skills/nuxt/references/features-server.md +265 -0
- package/templates/skills/nuxt/references/features-state.md +194 -0
- package/templates/skills/nuxt/references/rendering-modes.md +237 -0
- package/templates/skills/pinia/GENERATION.md +5 -0
- package/templates/skills/pinia/SKILL.md +59 -0
- package/templates/skills/pinia/references/advanced-hmr.md +61 -0
- package/templates/skills/pinia/references/advanced-nuxt.md +119 -0
- package/templates/skills/pinia/references/advanced-ssr.md +121 -0
- package/templates/skills/pinia/references/best-practices-outside-component.md +115 -0
- package/templates/skills/pinia/references/best-practices-testing.md +212 -0
- package/templates/skills/pinia/references/core-stores.md +389 -0
- package/templates/skills/pinia/references/features-composables.md +114 -0
- package/templates/skills/pinia/references/features-composing-stores.md +134 -0
- package/templates/skills/pinia/references/features-plugins.md +203 -0
- package/templates/skills/pnpm/GENERATION.md +5 -0
- package/templates/skills/pnpm/SKILL.md +42 -0
- package/templates/skills/pnpm/references/best-practices-ci.md +285 -0
- package/templates/skills/pnpm/references/best-practices-migration.md +291 -0
- package/templates/skills/pnpm/references/best-practices-performance.md +284 -0
- package/templates/skills/pnpm/references/core-cli.md +229 -0
- package/templates/skills/pnpm/references/core-config.md +188 -0
- package/templates/skills/pnpm/references/core-store.md +179 -0
- package/templates/skills/pnpm/references/core-workspaces.md +205 -0
- package/templates/skills/pnpm/references/features-aliases.md +168 -0
- package/templates/skills/pnpm/references/features-catalogs.md +159 -0
- package/templates/skills/pnpm/references/features-hooks.md +233 -0
- package/templates/skills/pnpm/references/features-overrides.md +184 -0
- package/templates/skills/pnpm/references/features-patches.md +201 -0
- package/templates/skills/pnpm/references/features-peer-deps.md +250 -0
- package/templates/skills/slidev/LICENSE.md +21 -0
- package/templates/skills/slidev/README.md +61 -0
- package/templates/skills/slidev/SKILL.md +183 -0
- package/templates/skills/slidev/SYNC.md +5 -0
- package/templates/skills/slidev/references/animation-click-marker.md +37 -0
- package/templates/skills/slidev/references/animation-drawing.md +68 -0
- package/templates/skills/slidev/references/animation-rough-marker.md +53 -0
- package/templates/skills/slidev/references/api-slide-hooks.md +37 -0
- package/templates/skills/slidev/references/build-og-image.md +36 -0
- package/templates/skills/slidev/references/build-pdf.md +40 -0
- package/templates/skills/slidev/references/build-remote-assets.md +34 -0
- package/templates/skills/slidev/references/build-seo-meta.md +43 -0
- package/templates/skills/slidev/references/code-groups.md +64 -0
- package/templates/skills/slidev/references/code-import-snippet.md +55 -0
- package/templates/skills/slidev/references/code-line-highlighting.md +50 -0
- package/templates/skills/slidev/references/code-line-numbers.md +46 -0
- package/templates/skills/slidev/references/code-magic-move.md +57 -0
- package/templates/skills/slidev/references/code-max-height.md +37 -0
- package/templates/skills/slidev/references/code-twoslash.md +42 -0
- package/templates/skills/slidev/references/core-animations.md +196 -0
- package/templates/skills/slidev/references/core-cli.md +140 -0
- package/templates/skills/slidev/references/core-components.md +197 -0
- package/templates/skills/slidev/references/core-exporting.md +148 -0
- package/templates/skills/slidev/references/core-frontmatter.md +195 -0
- package/templates/skills/slidev/references/core-global-context.md +155 -0
- package/templates/skills/slidev/references/core-headmatter.md +188 -0
- package/templates/skills/slidev/references/core-hosting.md +152 -0
- package/templates/skills/slidev/references/core-layouts.md +286 -0
- package/templates/skills/slidev/references/core-syntax.md +155 -0
- package/templates/skills/slidev/references/diagram-latex.md +55 -0
- package/templates/skills/slidev/references/diagram-mermaid.md +44 -0
- package/templates/skills/slidev/references/diagram-plantuml.md +45 -0
- package/templates/skills/slidev/references/editor-monaco-run.md +44 -0
- package/templates/skills/slidev/references/editor-monaco-write.md +24 -0
- package/templates/skills/slidev/references/editor-monaco.md +50 -0
- package/templates/skills/slidev/references/editor-prettier.md +40 -0
- package/templates/skills/slidev/references/editor-side.md +23 -0
- package/templates/skills/slidev/references/editor-vscode.md +55 -0
- package/templates/skills/slidev/references/layout-canvas-size.md +25 -0
- package/templates/skills/slidev/references/layout-draggable.md +57 -0
- package/templates/skills/slidev/references/layout-global-layers.md +50 -0
- package/templates/skills/slidev/references/layout-slots.md +75 -0
- package/templates/skills/slidev/references/layout-transform.md +33 -0
- package/templates/skills/slidev/references/layout-zoom.md +39 -0
- package/templates/skills/slidev/references/presenter-notes-ruby.md +35 -0
- package/templates/skills/slidev/references/presenter-recording.md +30 -0
- package/templates/skills/slidev/references/presenter-remote.md +40 -0
- package/templates/skills/slidev/references/presenter-timer.md +34 -0
- package/templates/skills/slidev/references/style-direction.md +34 -0
- package/templates/skills/slidev/references/style-icons.md +46 -0
- package/templates/skills/slidev/references/style-scoped.md +50 -0
- package/templates/skills/slidev/references/syntax-block-frontmatter.md +39 -0
- package/templates/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
- package/templates/skills/slidev/references/syntax-importing-slides.md +60 -0
- package/templates/skills/slidev/references/syntax-mdc.md +51 -0
- package/templates/skills/slidev/references/tool-eject-theme.md +27 -0
- package/templates/skills/tech-whitepaper/SKILL.md +102 -15
- package/templates/skills/tsdown/GENERATION.md +5 -0
- package/templates/skills/tsdown/SKILL.md +59 -0
- package/templates/skills/tsdown/references/advanced-hooks.md +87 -0
- package/templates/skills/tsdown/references/advanced-plugins.md +97 -0
- package/templates/skills/tsdown/references/advanced-programmatic.md +78 -0
- package/templates/skills/tsdown/references/advanced-rolldown-options.md +114 -0
- package/templates/skills/tsdown/references/core-cli.md +116 -0
- package/templates/skills/tsdown/references/core-config.md +86 -0
- package/templates/skills/tsdown/references/core-entry.md +74 -0
- package/templates/skills/tsdown/references/features-optimization.md +83 -0
- package/templates/skills/tsdown/references/features-shims.md +92 -0
- package/templates/skills/tsdown/references/features-unbundle.md +63 -0
- package/templates/skills/tsdown/references/features-watch.md +60 -0
- package/templates/skills/tsdown/references/options-dependencies.md +88 -0
- package/templates/skills/tsdown/references/options-dts.md +104 -0
- package/templates/skills/tsdown/references/options-output.md +124 -0
- package/templates/skills/tsdown/references/options-package-exports.md +114 -0
- package/templates/skills/tsdown/references/recipes-frameworks.md +109 -0
- package/templates/skills/tsdown/references/recipes-migration.md +84 -0
- package/templates/skills/turborepo/LICENSE.md +7 -0
- package/templates/skills/turborepo/SKILL.md +914 -0
- package/templates/skills/turborepo/SYNC.md +5 -0
- package/templates/skills/turborepo/command/turborepo.md +70 -0
- package/templates/skills/turborepo/references/best-practices/README.md +241 -0
- package/templates/skills/turborepo/references/best-practices/dependencies.md +246 -0
- package/templates/skills/turborepo/references/best-practices/packages.md +335 -0
- package/templates/skills/turborepo/references/best-practices/structure.md +269 -0
- package/templates/skills/turborepo/references/boundaries/README.md +126 -0
- package/templates/skills/turborepo/references/caching/README.md +107 -0
- package/templates/skills/turborepo/references/caching/gotchas.md +169 -0
- package/templates/skills/turborepo/references/caching/remote-cache.md +127 -0
- package/templates/skills/turborepo/references/ci/README.md +79 -0
- package/templates/skills/turborepo/references/ci/github-actions.md +162 -0
- package/templates/skills/turborepo/references/ci/patterns.md +145 -0
- package/templates/skills/turborepo/references/ci/vercel.md +103 -0
- package/templates/skills/turborepo/references/cli/README.md +100 -0
- package/templates/skills/turborepo/references/cli/commands.md +297 -0
- package/templates/skills/turborepo/references/configuration/README.md +211 -0
- package/templates/skills/turborepo/references/configuration/global-options.md +195 -0
- package/templates/skills/turborepo/references/configuration/gotchas.md +348 -0
- package/templates/skills/turborepo/references/configuration/tasks.md +285 -0
- package/templates/skills/turborepo/references/environment/README.md +96 -0
- package/templates/skills/turborepo/references/environment/gotchas.md +145 -0
- package/templates/skills/turborepo/references/environment/modes.md +101 -0
- package/templates/skills/turborepo/references/filtering/README.md +148 -0
- package/templates/skills/turborepo/references/filtering/patterns.md +152 -0
- package/templates/skills/turborepo/references/watch/README.md +99 -0
- package/templates/skills/unocss/GENERATION.md +5 -0
- package/templates/skills/unocss/SKILL.md +64 -0
- package/templates/skills/unocss/references/core-config.md +187 -0
- package/templates/skills/unocss/references/core-extracting.md +137 -0
- package/templates/skills/unocss/references/core-layers.md +104 -0
- package/templates/skills/unocss/references/core-rules.md +166 -0
- package/templates/skills/unocss/references/core-safelist.md +105 -0
- package/templates/skills/unocss/references/core-shortcuts.md +89 -0
- package/templates/skills/unocss/references/core-theme.md +172 -0
- package/templates/skills/unocss/references/core-variants.md +175 -0
- package/templates/skills/unocss/references/integrations-nuxt.md +199 -0
- package/templates/skills/unocss/references/integrations-vite.md +283 -0
- package/templates/skills/unocss/references/preset-attributify.md +142 -0
- package/templates/skills/unocss/references/preset-icons.md +184 -0
- package/templates/skills/unocss/references/preset-mini.md +158 -0
- package/templates/skills/unocss/references/preset-rem-to-px.md +97 -0
- package/templates/skills/unocss/references/preset-tagify.md +134 -0
- package/templates/skills/unocss/references/preset-typography.md +95 -0
- package/templates/skills/unocss/references/preset-web-fonts.md +91 -0
- package/templates/skills/unocss/references/preset-wind3.md +194 -0
- package/templates/skills/unocss/references/preset-wind4.md +247 -0
- package/templates/skills/unocss/references/transformer-attributify-jsx.md +156 -0
- package/templates/skills/unocss/references/transformer-compile-class.md +128 -0
- package/templates/skills/unocss/references/transformer-directives.md +157 -0
- package/templates/skills/unocss/references/transformer-variant-group.md +97 -0
- package/templates/skills/vite/GENERATION.md +5 -0
- package/templates/skills/vite/SKILL.md +50 -0
- package/templates/skills/vite/references/advanced-api.md +218 -0
- package/templates/skills/vite/references/advanced-backend.md +164 -0
- package/templates/skills/vite/references/advanced-performance.md +168 -0
- package/templates/skills/vite/references/advanced-plugin-api.md +258 -0
- package/templates/skills/vite/references/build-library.md +172 -0
- package/templates/skills/vite/references/build-production.md +220 -0
- package/templates/skills/vite/references/build-ssr.md +194 -0
- package/templates/skills/vite/references/core-cli.md +137 -0
- package/templates/skills/vite/references/core-config.md +176 -0
- package/templates/skills/vite/references/core-features.md +170 -0
- package/templates/skills/vite/references/core-plugins.md +154 -0
- package/templates/skills/vite/references/features-assets.md +138 -0
- package/templates/skills/vite/references/features-css.md +215 -0
- package/templates/skills/vite/references/features-dep-bundling.md +148 -0
- package/templates/skills/vite/references/features-env.md +161 -0
- package/templates/skills/vite/references/features-glob-import.md +161 -0
- package/templates/skills/vite/references/features-hmr.md +200 -0
- package/templates/skills/vite/references/features-workers.md +115 -0
- package/templates/skills/vitepress/GENERATION.md +5 -0
- package/templates/skills/vitepress/SKILL.md +65 -0
- package/templates/skills/vitepress/references/advanced-i18n.md +299 -0
- package/templates/skills/vitepress/references/advanced-ssr.md +228 -0
- package/templates/skills/vitepress/references/core-cli.md +119 -0
- package/templates/skills/vitepress/references/core-config.md +189 -0
- package/templates/skills/vitepress/references/core-markdown.md +277 -0
- package/templates/skills/vitepress/references/core-routing.md +169 -0
- package/templates/skills/vitepress/references/features-code-blocks.md +243 -0
- package/templates/skills/vitepress/references/features-data-loading.md +220 -0
- package/templates/skills/vitepress/references/features-dynamic-routes.md +235 -0
- package/templates/skills/vitepress/references/features-vue.md +224 -0
- package/templates/skills/vitepress/references/recipes-deploy.md +240 -0
- package/templates/skills/vitepress/references/theme-config.md +315 -0
- package/templates/skills/vitepress/references/theme-custom.md +269 -0
- package/templates/skills/vitepress/references/theme-customization.md +290 -0
- package/templates/skills/vitest/GENERATION.md +5 -0
- package/templates/skills/vitest/SKILL.md +52 -0
- package/templates/skills/vitest/references/advanced-environments.md +264 -0
- package/templates/skills/vitest/references/advanced-projects.md +300 -0
- package/templates/skills/vitest/references/advanced-type-testing.md +237 -0
- package/templates/skills/vitest/references/advanced-vi.md +249 -0
- package/templates/skills/vitest/references/core-cli.md +166 -0
- package/templates/skills/vitest/references/core-config.md +174 -0
- package/templates/skills/vitest/references/core-describe.md +193 -0
- package/templates/skills/vitest/references/core-expect.md +219 -0
- package/templates/skills/vitest/references/core-hooks.md +244 -0
- package/templates/skills/vitest/references/core-test-api.md +233 -0
- package/templates/skills/vitest/references/features-concurrency.md +250 -0
- package/templates/skills/vitest/references/features-context.md +238 -0
- package/templates/skills/vitest/references/features-coverage.md +207 -0
- package/templates/skills/vitest/references/features-filtering.md +211 -0
- package/templates/skills/vitest/references/features-mocking.md +265 -0
- package/templates/skills/vitest/references/features-snapshots.md +207 -0
- package/templates/skills/vue/GENERATION.md +5 -0
- package/templates/skills/vue/SKILL.md +63 -0
- package/templates/skills/vue/references/advanced-async-suspense.md +246 -0
- package/templates/skills/vue/references/advanced-provide-inject.md +174 -0
- package/templates/skills/vue/references/components-emits.md +139 -0
- package/templates/skills/vue/references/components-lifecycle.md +192 -0
- package/templates/skills/vue/references/components-props.md +211 -0
- package/templates/skills/vue/references/components-slots.md +201 -0
- package/templates/skills/vue/references/components-v-model.md +183 -0
- package/templates/skills/vue/references/core-reactivity.md +289 -0
- package/templates/skills/vue/references/features-composables.md +262 -0
- package/templates/skills/vue/references/features-directives.md +224 -0
- package/templates/skills/vue/references/features-script-setup.md +247 -0
- package/templates/skills/vue/references/features-template-refs.md +212 -0
- package/templates/skills/vue/references/features-typescript.md +274 -0
- package/templates/skills/vue-best-practices/LICENSE.md +21 -0
- package/templates/skills/vue-best-practices/SKILL.md +38 -0
- package/templates/skills/vue-best-practices/SYNC.md +5 -0
- package/templates/skills/vue-best-practices/rules/codeactions-save-performance.md +79 -0
- package/templates/skills/vue-best-practices/rules/data-attributes-config.md +74 -0
- package/templates/skills/vue-best-practices/rules/deep-watch-numeric.md +97 -0
- package/templates/skills/vue-best-practices/rules/define-model-update-event.md +79 -0
- package/templates/skills/vue-best-practices/rules/duplicate-plugin-detection.md +102 -0
- package/templates/skills/vue-best-practices/rules/extract-component-props.md +57 -0
- package/templates/skills/vue-best-practices/rules/fallthrough-attributes.md +63 -0
- package/templates/skills/vue-best-practices/rules/hmr-vue-ssr.md +124 -0
- package/templates/skills/vue-best-practices/rules/module-resolution-bundler.md +81 -0
- package/templates/skills/vue-best-practices/rules/pinia-store-mocking.md +159 -0
- package/templates/skills/vue-best-practices/rules/script-setup-jsdoc.md +85 -0
- package/templates/skills/vue-best-practices/rules/strict-css-modules.md +68 -0
- package/templates/skills/vue-best-practices/rules/volar-3-breaking-changes.md +65 -0
- package/templates/skills/vue-best-practices/rules/vue-directive-comments.md +73 -0
- package/templates/skills/vue-best-practices/rules/vue-router-typed-params.md +81 -0
- package/templates/skills/vue-best-practices/rules/vue-tsc-strict-templates.md +69 -0
- package/templates/skills/vue-best-practices/rules/with-defaults-union-types.md +102 -0
- package/templates/skills/vueuse-functions/LICENSE.md +21 -0
- package/templates/skills/vueuse-functions/SKILL.md +418 -0
- package/templates/skills/vueuse-functions/SYNC.md +5 -0
- package/templates/skills/vueuse-functions/references/computedAsync.md +159 -0
- package/templates/skills/vueuse-functions/references/computedEager.md +62 -0
- package/templates/skills/vueuse-functions/references/computedInject.md +86 -0
- package/templates/skills/vueuse-functions/references/computedWithControl.md +100 -0
- package/templates/skills/vueuse-functions/references/createEventHook.md +86 -0
- package/templates/skills/vueuse-functions/references/createGenericProjection.md +25 -0
- package/templates/skills/vueuse-functions/references/createGlobalState.md +95 -0
- package/templates/skills/vueuse-functions/references/createInjectionState.md +215 -0
- package/templates/skills/vueuse-functions/references/createProjection.md +31 -0
- package/templates/skills/vueuse-functions/references/createRef.md +54 -0
- package/templates/skills/vueuse-functions/references/createReusableTemplate.md +357 -0
- package/templates/skills/vueuse-functions/references/createSharedComposable.md +42 -0
- package/templates/skills/vueuse-functions/references/createTemplatePromise.md +259 -0
- package/templates/skills/vueuse-functions/references/createUnrefFn.md +51 -0
- package/templates/skills/vueuse-functions/references/extendRef.md +76 -0
- package/templates/skills/vueuse-functions/references/from.md +48 -0
- package/templates/skills/vueuse-functions/references/get.md +30 -0
- package/templates/skills/vueuse-functions/references/injectLocal.md +35 -0
- package/templates/skills/vueuse-functions/references/isDefined.md +31 -0
- package/templates/skills/vueuse-functions/references/logicAnd.md +40 -0
- package/templates/skills/vueuse-functions/references/logicNot.md +36 -0
- package/templates/skills/vueuse-functions/references/logicOr.md +40 -0
- package/templates/skills/vueuse-functions/references/makeDestructurable.md +41 -0
- package/templates/skills/vueuse-functions/references/onClickOutside.md +187 -0
- package/templates/skills/vueuse-functions/references/onElementRemoval.md +64 -0
- package/templates/skills/vueuse-functions/references/onKeyStroke.md +176 -0
- package/templates/skills/vueuse-functions/references/onLongPress.md +170 -0
- package/templates/skills/vueuse-functions/references/onStartTyping.md +43 -0
- package/templates/skills/vueuse-functions/references/provideLocal.md +37 -0
- package/templates/skills/vueuse-functions/references/reactify.md +144 -0
- package/templates/skills/vueuse-functions/references/reactifyObject.md +61 -0
- package/templates/skills/vueuse-functions/references/reactiveComputed.md +34 -0
- package/templates/skills/vueuse-functions/references/reactiveOmit.md +86 -0
- package/templates/skills/vueuse-functions/references/reactivePick.md +106 -0
- package/templates/skills/vueuse-functions/references/refAutoReset.md +44 -0
- package/templates/skills/vueuse-functions/references/refDebounced.md +81 -0
- package/templates/skills/vueuse-functions/references/refDefault.md +36 -0
- package/templates/skills/vueuse-functions/references/refManualReset.md +44 -0
- package/templates/skills/vueuse-functions/references/refThrottled.md +99 -0
- package/templates/skills/vueuse-functions/references/refWithControl.md +146 -0
- package/templates/skills/vueuse-functions/references/set.md +30 -0
- package/templates/skills/vueuse-functions/references/syncRef.md +195 -0
- package/templates/skills/vueuse-functions/references/syncRefs.md +128 -0
- package/templates/skills/vueuse-functions/references/templateRef.md +86 -0
- package/templates/skills/vueuse-functions/references/toObserver.md +38 -0
- package/templates/skills/vueuse-functions/references/toReactive.md +41 -0
- package/templates/skills/vueuse-functions/references/toRef.md +75 -0
- package/templates/skills/vueuse-functions/references/toRefs.md +81 -0
- package/templates/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
- package/templates/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
- package/templates/skills/vueuse-functions/references/tryOnMounted.md +34 -0
- package/templates/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
- package/templates/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
- package/templates/skills/vueuse-functions/references/unrefElement.md +54 -0
- package/templates/skills/vueuse-functions/references/until.md +165 -0
- package/templates/skills/vueuse-functions/references/useAbs.md +31 -0
- package/templates/skills/vueuse-functions/references/useActiveElement.md +65 -0
- package/templates/skills/vueuse-functions/references/useAnimate.md +140 -0
- package/templates/skills/vueuse-functions/references/useArrayDifference.md +84 -0
- package/templates/skills/vueuse-functions/references/useArrayEvery.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayFilter.md +63 -0
- package/templates/skills/vueuse-functions/references/useArrayFind.md +50 -0
- package/templates/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
- package/templates/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
- package/templates/skills/vueuse-functions/references/useArrayJoin.md +74 -0
- package/templates/skills/vueuse-functions/references/useArrayMap.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayReduce.md +81 -0
- package/templates/skills/vueuse-functions/references/useArraySome.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayUnique.md +76 -0
- package/templates/skills/vueuse-functions/references/useAsyncQueue.md +87 -0
- package/templates/skills/vueuse-functions/references/useAsyncState.md +140 -0
- package/templates/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
- package/templates/skills/vueuse-functions/references/useAuth.md +114 -0
- package/templates/skills/vueuse-functions/references/useAverage.md +36 -0
- package/templates/skills/vueuse-functions/references/useAxios.md +292 -0
- package/templates/skills/vueuse-functions/references/useBase64.md +88 -0
- package/templates/skills/vueuse-functions/references/useBattery.md +67 -0
- package/templates/skills/vueuse-functions/references/useBluetooth.md +161 -0
- package/templates/skills/vueuse-functions/references/useBreakpoints.md +128 -0
- package/templates/skills/vueuse-functions/references/useBroadcastChannel.md +74 -0
- package/templates/skills/vueuse-functions/references/useBrowserLocation.md +83 -0
- package/templates/skills/vueuse-functions/references/useCached.md +53 -0
- package/templates/skills/vueuse-functions/references/useCeil.md +31 -0
- package/templates/skills/vueuse-functions/references/useChangeCase.md +79 -0
- package/templates/skills/vueuse-functions/references/useClamp.md +51 -0
- package/templates/skills/vueuse-functions/references/useClipboard.md +99 -0
- package/templates/skills/vueuse-functions/references/useClipboardItems.md +93 -0
- package/templates/skills/vueuse-functions/references/useCloned.md +91 -0
- package/templates/skills/vueuse-functions/references/useColorMode.md +171 -0
- package/templates/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
- package/templates/skills/vueuse-functions/references/useCookies.md +162 -0
- package/templates/skills/vueuse-functions/references/useCountdown.md +102 -0
- package/templates/skills/vueuse-functions/references/useCounter.md +86 -0
- package/templates/skills/vueuse-functions/references/useCssVar.md +50 -0
- package/templates/skills/vueuse-functions/references/useCurrentElement.md +61 -0
- package/templates/skills/vueuse-functions/references/useCycleList.md +75 -0
- package/templates/skills/vueuse-functions/references/useDark.md +142 -0
- package/templates/skills/vueuse-functions/references/useDateFormat.md +145 -0
- package/templates/skills/vueuse-functions/references/useDebounceFn.md +100 -0
- package/templates/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
- package/templates/skills/vueuse-functions/references/useDeviceMotion.md +87 -0
- package/templates/skills/vueuse-functions/references/useDeviceOrientation.md +62 -0
- package/templates/skills/vueuse-functions/references/useDevicePixelRatio.md +44 -0
- package/templates/skills/vueuse-functions/references/useDevicesList.md +90 -0
- package/templates/skills/vueuse-functions/references/useDisplayMedia.md +71 -0
- package/templates/skills/vueuse-functions/references/useDocumentVisibility.md +45 -0
- package/templates/skills/vueuse-functions/references/useDraggable.md +210 -0
- package/templates/skills/vueuse-functions/references/useDrauu.md +65 -0
- package/templates/skills/vueuse-functions/references/useDropZone.md +83 -0
- package/templates/skills/vueuse-functions/references/useElementBounding.md +131 -0
- package/templates/skills/vueuse-functions/references/useElementByPoint.md +45 -0
- package/templates/skills/vueuse-functions/references/useElementHover.md +79 -0
- package/templates/skills/vueuse-functions/references/useElementSize.md +78 -0
- package/templates/skills/vueuse-functions/references/useElementVisibility.md +126 -0
- package/templates/skills/vueuse-functions/references/useEventBus.md +101 -0
- package/templates/skills/vueuse-functions/references/useEventListener.md +184 -0
- package/templates/skills/vueuse-functions/references/useEventSource.md +204 -0
- package/templates/skills/vueuse-functions/references/useExtractedObservable.md +185 -0
- package/templates/skills/vueuse-functions/references/useEyeDropper.md +71 -0
- package/templates/skills/vueuse-functions/references/useFavicon.md +67 -0
- package/templates/skills/vueuse-functions/references/useFetch.md +546 -0
- package/templates/skills/vueuse-functions/references/useFileDialog.md +91 -0
- package/templates/skills/vueuse-functions/references/useFileSystemAccess.md +162 -0
- package/templates/skills/vueuse-functions/references/useFirestore.md +104 -0
- package/templates/skills/vueuse-functions/references/useFloor.md +31 -0
- package/templates/skills/vueuse-functions/references/useFocus.md +99 -0
- package/templates/skills/vueuse-functions/references/useFocusTrap.md +245 -0
- package/templates/skills/vueuse-functions/references/useFocusWithin.md +57 -0
- package/templates/skills/vueuse-functions/references/useFps.md +28 -0
- package/templates/skills/vueuse-functions/references/useFullscreen.md +75 -0
- package/templates/skills/vueuse-functions/references/useFuse.md +107 -0
- package/templates/skills/vueuse-functions/references/useGamepad.md +223 -0
- package/templates/skills/vueuse-functions/references/useGeolocation.md +86 -0
- package/templates/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
- package/templates/skills/vueuse-functions/references/useIdle.md +89 -0
- package/templates/skills/vueuse-functions/references/useImage.md +86 -0
- package/templates/skills/vueuse-functions/references/useInfiniteScroll.md +157 -0
- package/templates/skills/vueuse-functions/references/useIntersectionObserver.md +118 -0
- package/templates/skills/vueuse-functions/references/useInterval.md +69 -0
- package/templates/skills/vueuse-functions/references/useIntervalFn.md +50 -0
- package/templates/skills/vueuse-functions/references/useIpcRenderer.md +118 -0
- package/templates/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
- package/templates/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
- package/templates/skills/vueuse-functions/references/useJwt.md +57 -0
- package/templates/skills/vueuse-functions/references/useKeyModifier.md +87 -0
- package/templates/skills/vueuse-functions/references/useLastChanged.md +63 -0
- package/templates/skills/vueuse-functions/references/useLocalStorage.md +41 -0
- package/templates/skills/vueuse-functions/references/useMagicKeys.md +217 -0
- package/templates/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
- package/templates/skills/vueuse-functions/references/useMath.md +47 -0
- package/templates/skills/vueuse-functions/references/useMax.md +36 -0
- package/templates/skills/vueuse-functions/references/useMediaControls.md +571 -0
- package/templates/skills/vueuse-functions/references/useMediaQuery.md +53 -0
- package/templates/skills/vueuse-functions/references/useMemoize.md +175 -0
- package/templates/skills/vueuse-functions/references/useMemory.md +56 -0
- package/templates/skills/vueuse-functions/references/useMin.md +36 -0
- package/templates/skills/vueuse-functions/references/useMounted.md +38 -0
- package/templates/skills/vueuse-functions/references/useMouse.md +114 -0
- package/templates/skills/vueuse-functions/references/useMouseInElement.md +123 -0
- package/templates/skills/vueuse-functions/references/useMousePressed.md +112 -0
- package/templates/skills/vueuse-functions/references/useMutationObserver.md +62 -0
- package/templates/skills/vueuse-functions/references/useNProgress.md +78 -0
- package/templates/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
- package/templates/skills/vueuse-functions/references/useNetwork.md +106 -0
- package/templates/skills/vueuse-functions/references/useNow.md +75 -0
- package/templates/skills/vueuse-functions/references/useObjectUrl.md +55 -0
- package/templates/skills/vueuse-functions/references/useObservable.md +67 -0
- package/templates/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
- package/templates/skills/vueuse-functions/references/useOnline.md +41 -0
- package/templates/skills/vueuse-functions/references/usePageLeave.md +42 -0
- package/templates/skills/vueuse-functions/references/useParallax.md +58 -0
- package/templates/skills/vueuse-functions/references/useParentElement.md +54 -0
- package/templates/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
- package/templates/skills/vueuse-functions/references/usePermission.md +78 -0
- package/templates/skills/vueuse-functions/references/usePointer.md +89 -0
- package/templates/skills/vueuse-functions/references/usePointerLock.md +60 -0
- package/templates/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
- package/templates/skills/vueuse-functions/references/usePrecision.md +49 -0
- package/templates/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
- package/templates/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
- package/templates/skills/vueuse-functions/references/usePreferredDark.md +41 -0
- package/templates/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
- package/templates/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
- package/templates/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
- package/templates/skills/vueuse-functions/references/usePrevious.md +40 -0
- package/templates/skills/vueuse-functions/references/useProjection.md +38 -0
- package/templates/skills/vueuse-functions/references/useQRCode.md +53 -0
- package/templates/skills/vueuse-functions/references/useRTDB.md +70 -0
- package/templates/skills/vueuse-functions/references/useRafFn.md +68 -0
- package/templates/skills/vueuse-functions/references/useRefHistory.md +292 -0
- package/templates/skills/vueuse-functions/references/useResizeObserver.md +110 -0
- package/templates/skills/vueuse-functions/references/useRound.md +31 -0
- package/templates/skills/vueuse-functions/references/useRouteHash.md +27 -0
- package/templates/skills/vueuse-functions/references/useRouteParams.md +38 -0
- package/templates/skills/vueuse-functions/references/useRouteQuery.md +38 -0
- package/templates/skills/vueuse-functions/references/useSSRWidth.md +47 -0
- package/templates/skills/vueuse-functions/references/useScreenOrientation.md +96 -0
- package/templates/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
- package/templates/skills/vueuse-functions/references/useScriptTag.md +116 -0
- package/templates/skills/vueuse-functions/references/useScroll.md +238 -0
- package/templates/skills/vueuse-functions/references/useScrollLock.md +66 -0
- package/templates/skills/vueuse-functions/references/useSessionStorage.md +41 -0
- package/templates/skills/vueuse-functions/references/useShare.md +68 -0
- package/templates/skills/vueuse-functions/references/useSortable.md +177 -0
- package/templates/skills/vueuse-functions/references/useSorted.md +90 -0
- package/templates/skills/vueuse-functions/references/useSpeechRecognition.md +94 -0
- package/templates/skills/vueuse-functions/references/useSpeechSynthesis.md +105 -0
- package/templates/skills/vueuse-functions/references/useStepper.md +137 -0
- package/templates/skills/vueuse-functions/references/useStorage.md +219 -0
- package/templates/skills/vueuse-functions/references/useStorageAsync.md +134 -0
- package/templates/skills/vueuse-functions/references/useStyleTag.md +131 -0
- package/templates/skills/vueuse-functions/references/useSubject.md +52 -0
- package/templates/skills/vueuse-functions/references/useSubscription.md +33 -0
- package/templates/skills/vueuse-functions/references/useSum.md +36 -0
- package/templates/skills/vueuse-functions/references/useSupported.md +29 -0
- package/templates/skills/vueuse-functions/references/useSwipe.md +75 -0
- package/templates/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
- package/templates/skills/vueuse-functions/references/useTextDirection.md +75 -0
- package/templates/skills/vueuse-functions/references/useTextSelection.md +40 -0
- package/templates/skills/vueuse-functions/references/useTextareaAutosize.md +97 -0
- package/templates/skills/vueuse-functions/references/useThrottleFn.md +57 -0
- package/templates/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
- package/templates/skills/vueuse-functions/references/useTimeAgo.md +152 -0
- package/templates/skills/vueuse-functions/references/useTimeAgoIntl.md +116 -0
- package/templates/skills/vueuse-functions/references/useTimeout.md +75 -0
- package/templates/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
- package/templates/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
- package/templates/skills/vueuse-functions/references/useTimestamp.md +85 -0
- package/templates/skills/vueuse-functions/references/useTitle.md +113 -0
- package/templates/skills/vueuse-functions/references/useToNumber.md +54 -0
- package/templates/skills/vueuse-functions/references/useToString.md +34 -0
- package/templates/skills/vueuse-functions/references/useToggle.md +56 -0
- package/templates/skills/vueuse-functions/references/useTransition.md +265 -0
- package/templates/skills/vueuse-functions/references/useTrunc.md +33 -0
- package/templates/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
- package/templates/skills/vueuse-functions/references/useUserMedia.md +1138 -0
- package/templates/skills/vueuse-functions/references/useVModel.md +116 -0
- package/templates/skills/vueuse-functions/references/useVModels.md +67 -0
- package/templates/skills/vueuse-functions/references/useVibrate.md +83 -0
- package/templates/skills/vueuse-functions/references/useVirtualList.md +184 -0
- package/templates/skills/vueuse-functions/references/useWakeLock.md +50 -0
- package/templates/skills/vueuse-functions/references/useWebNotification.md +177 -0
- package/templates/skills/vueuse-functions/references/useWebSocket.md +268 -0
- package/templates/skills/vueuse-functions/references/useWebWorker.md +60 -0
- package/templates/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
- package/templates/skills/vueuse-functions/references/useWindowFocus.md +46 -0
- package/templates/skills/vueuse-functions/references/useWindowScroll.md +62 -0
- package/templates/skills/vueuse-functions/references/useWindowSize.md +76 -0
- package/templates/skills/vueuse-functions/references/useZoomFactor.md +53 -0
- package/templates/skills/vueuse-functions/references/useZoomLevel.md +53 -0
- package/templates/skills/vueuse-functions/references/watchArray.md +53 -0
- package/templates/skills/vueuse-functions/references/watchAtMost.md +54 -0
- package/templates/skills/vueuse-functions/references/watchDebounced.md +72 -0
- package/templates/skills/vueuse-functions/references/watchDeep.md +54 -0
- package/templates/skills/vueuse-functions/references/watchExtractedObservable.md +167 -0
- package/templates/skills/vueuse-functions/references/watchIgnorable.md +120 -0
- package/templates/skills/vueuse-functions/references/watchImmediate.md +44 -0
- package/templates/skills/vueuse-functions/references/watchOnce.md +41 -0
- package/templates/skills/vueuse-functions/references/watchPausable.md +86 -0
- package/templates/skills/vueuse-functions/references/watchThrottled.md +73 -0
- package/templates/skills/vueuse-functions/references/watchTriggerable.md +97 -0
- package/templates/skills/vueuse-functions/references/watchWithFilter.md +55 -0
- package/templates/skills/vueuse-functions/references/whenever.md +100 -0
- package/templates/skills/web-design-guidelines/SKILL.md +39 -0
- package/templates/skills/web-design-guidelines/SYNC.md +5 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
# Configuration Gotchas
|
|
2
|
+
|
|
3
|
+
Common mistakes and how to fix them.
|
|
4
|
+
|
|
5
|
+
## #1 Root Scripts Not Using `turbo run`
|
|
6
|
+
|
|
7
|
+
Root `package.json` scripts for turbo tasks MUST use `turbo run`, not direct commands.
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
// WRONG - bypasses turbo, no parallelization or caching
|
|
11
|
+
{
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "bun build",
|
|
14
|
+
"dev": "bun dev"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// CORRECT - delegates to turbo
|
|
19
|
+
{
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "turbo run build",
|
|
22
|
+
"dev": "turbo run dev"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Why this matters:** Running `bun build` or `npm run build` at root bypasses Turborepo entirely - no parallelization, no caching, no dependency graph awareness.
|
|
28
|
+
|
|
29
|
+
## #2 Using `&&` to Chain Turbo Tasks
|
|
30
|
+
|
|
31
|
+
Don't use `&&` to chain tasks that turbo should orchestrate.
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
// WRONG - changeset:publish chains turbo task with non-turbo command
|
|
35
|
+
{
|
|
36
|
+
"scripts": {
|
|
37
|
+
"changeset:publish": "bun build && changeset publish"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// CORRECT - use turbo run, let turbo handle dependencies
|
|
42
|
+
{
|
|
43
|
+
"scripts": {
|
|
44
|
+
"changeset:publish": "turbo run build && changeset publish"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If the second command (`changeset publish`) depends on build outputs, the turbo task should run through turbo to get caching and parallelization benefits.
|
|
50
|
+
|
|
51
|
+
## #3 Overly Broad globalDependencies
|
|
52
|
+
|
|
53
|
+
`globalDependencies` affects hash for ALL tasks in ALL packages. Be specific.
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
// WRONG - affects all hashes
|
|
57
|
+
{
|
|
58
|
+
"globalDependencies": ["**/.env.*local"]
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// CORRECT - move to specific tasks that need it
|
|
62
|
+
{
|
|
63
|
+
"globalDependencies": [".env"],
|
|
64
|
+
"tasks": {
|
|
65
|
+
"build": {
|
|
66
|
+
"inputs": ["$TURBO_DEFAULT$", ".env*"],
|
|
67
|
+
"outputs": ["dist/**"]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Why this matters:** `**/.env.*local` matches .env files in ALL packages, causing unnecessary cache invalidation. Instead:
|
|
74
|
+
|
|
75
|
+
- Use `globalDependencies` only for truly global files (root `.env`)
|
|
76
|
+
- Use task-level `inputs` for package-specific .env files with `$TURBO_DEFAULT$` to preserve default behavior
|
|
77
|
+
|
|
78
|
+
## #4 Repetitive Task Configuration
|
|
79
|
+
|
|
80
|
+
Look for repeated configuration across tasks that can be collapsed.
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
// WRONG - repetitive env and inputs across tasks
|
|
84
|
+
{
|
|
85
|
+
"tasks": {
|
|
86
|
+
"build": {
|
|
87
|
+
"env": ["API_URL", "DATABASE_URL"],
|
|
88
|
+
"inputs": ["$TURBO_DEFAULT$", ".env*"]
|
|
89
|
+
},
|
|
90
|
+
"test": {
|
|
91
|
+
"env": ["API_URL", "DATABASE_URL"],
|
|
92
|
+
"inputs": ["$TURBO_DEFAULT$", ".env*"]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// BETTER - use globalEnv and globalDependencies
|
|
98
|
+
{
|
|
99
|
+
"globalEnv": ["API_URL", "DATABASE_URL"],
|
|
100
|
+
"globalDependencies": [".env*"],
|
|
101
|
+
"tasks": {
|
|
102
|
+
"build": {},
|
|
103
|
+
"test": {}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**When to use global vs task-level:**
|
|
109
|
+
|
|
110
|
+
- `globalEnv` / `globalDependencies` - affects ALL tasks, use for truly shared config
|
|
111
|
+
- Task-level `env` / `inputs` - use when only specific tasks need it
|
|
112
|
+
|
|
113
|
+
## #5 Using `../` to Traverse Out of Package in `inputs`
|
|
114
|
+
|
|
115
|
+
Don't use relative paths like `../` to reference files outside the package. Use `$TURBO_ROOT$` instead.
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
// WRONG - traversing out of package
|
|
119
|
+
{
|
|
120
|
+
"tasks": {
|
|
121
|
+
"build": {
|
|
122
|
+
"inputs": ["$TURBO_DEFAULT$", "../shared-config.json"]
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// CORRECT - use $TURBO_ROOT$ for repo root
|
|
128
|
+
{
|
|
129
|
+
"tasks": {
|
|
130
|
+
"build": {
|
|
131
|
+
"inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/shared-config.json"]
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## #6 MOST COMMON MISTAKE: Creating Root Tasks
|
|
138
|
+
|
|
139
|
+
**DO NOT create Root Tasks. ALWAYS create package tasks.**
|
|
140
|
+
|
|
141
|
+
When you need to create a task (build, lint, test, typecheck, etc.):
|
|
142
|
+
|
|
143
|
+
1. Add the script to **each relevant package's** `package.json`
|
|
144
|
+
2. Register the task in root `turbo.json`
|
|
145
|
+
3. Root `package.json` only contains `turbo run <task>`
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
// WRONG - DO NOT DO THIS
|
|
149
|
+
// Root package.json with task logic
|
|
150
|
+
{
|
|
151
|
+
"scripts": {
|
|
152
|
+
"build": "cd apps/web && next build && cd ../api && tsc",
|
|
153
|
+
"lint": "eslint apps/ packages/",
|
|
154
|
+
"test": "vitest"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// CORRECT - DO THIS
|
|
159
|
+
// apps/web/package.json
|
|
160
|
+
{ "scripts": { "build": "next build", "lint": "eslint .", "test": "vitest" } }
|
|
161
|
+
|
|
162
|
+
// apps/api/package.json
|
|
163
|
+
{ "scripts": { "build": "tsc", "lint": "eslint .", "test": "vitest" } }
|
|
164
|
+
|
|
165
|
+
// packages/ui/package.json
|
|
166
|
+
{ "scripts": { "build": "tsc", "lint": "eslint .", "test": "vitest" } }
|
|
167
|
+
|
|
168
|
+
// Root package.json - ONLY delegates
|
|
169
|
+
{ "scripts": { "build": "turbo run build", "lint": "turbo run lint", "test": "turbo run test" } }
|
|
170
|
+
|
|
171
|
+
// turbo.json - register tasks
|
|
172
|
+
{
|
|
173
|
+
"tasks": {
|
|
174
|
+
"build": { "dependsOn": ["^build"], "outputs": ["dist/**"] },
|
|
175
|
+
"lint": {},
|
|
176
|
+
"test": {}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Why this matters:**
|
|
182
|
+
|
|
183
|
+
- Package tasks run in **parallel** across all packages
|
|
184
|
+
- Each package's output is cached **individually**
|
|
185
|
+
- You can **filter** to specific packages: `turbo run test --filter=web`
|
|
186
|
+
|
|
187
|
+
Root Tasks (`//#taskname`) defeat all these benefits. Only use them for tasks that truly cannot exist in any package (extremely rare).
|
|
188
|
+
|
|
189
|
+
## #7 Tasks That Need Parallel Execution + Cache Invalidation
|
|
190
|
+
|
|
191
|
+
Some tasks can run in parallel (don't need built output from dependencies) but must still invalidate cache when dependency source code changes. Using `dependsOn: ["^taskname"]` forces sequential execution. Using no dependencies breaks cache invalidation.
|
|
192
|
+
|
|
193
|
+
**Use Transit Nodes for these tasks:**
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
// WRONG - forces sequential execution (SLOW)
|
|
197
|
+
"my-task": {
|
|
198
|
+
"dependsOn": ["^my-task"]
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// ALSO WRONG - no dependency awareness (INCORRECT CACHING)
|
|
202
|
+
"my-task": {}
|
|
203
|
+
|
|
204
|
+
// CORRECT - use Transit Nodes for parallel + correct caching
|
|
205
|
+
{
|
|
206
|
+
"tasks": {
|
|
207
|
+
"transit": { "dependsOn": ["^transit"] },
|
|
208
|
+
"my-task": { "dependsOn": ["transit"] }
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**Why Transit Nodes work:**
|
|
214
|
+
|
|
215
|
+
- `transit` creates dependency relationships without matching any actual script
|
|
216
|
+
- Tasks that depend on `transit` gain dependency awareness
|
|
217
|
+
- Since `transit` completes instantly (no script), tasks run in parallel
|
|
218
|
+
- Cache correctly invalidates when dependency source code changes
|
|
219
|
+
|
|
220
|
+
**How to identify tasks that need this pattern:** Look for tasks that read source files from dependencies but don't need their build outputs.
|
|
221
|
+
|
|
222
|
+
## Missing outputs for File-Producing Tasks
|
|
223
|
+
|
|
224
|
+
**Before flagging missing `outputs`, check what the task actually produces:**
|
|
225
|
+
|
|
226
|
+
1. Read the package's script (e.g., `"build": "tsc"`, `"test": "vitest"`)
|
|
227
|
+
2. Determine if it writes files to disk or only outputs to stdout
|
|
228
|
+
3. Only flag if the task produces files that should be cached
|
|
229
|
+
|
|
230
|
+
```json
|
|
231
|
+
// WRONG - build produces files but they're not cached
|
|
232
|
+
"build": {
|
|
233
|
+
"dependsOn": ["^build"]
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// CORRECT - outputs are cached
|
|
237
|
+
"build": {
|
|
238
|
+
"dependsOn": ["^build"],
|
|
239
|
+
"outputs": ["dist/**"]
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
No `outputs` key is fine for stdout-only tasks. For file-producing tasks, missing `outputs` means Turbo has nothing to cache.
|
|
244
|
+
|
|
245
|
+
## Forgetting ^ in dependsOn
|
|
246
|
+
|
|
247
|
+
```json
|
|
248
|
+
// WRONG - looks for "build" in SAME package (infinite loop or missing)
|
|
249
|
+
"build": {
|
|
250
|
+
"dependsOn": ["build"]
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// CORRECT - runs dependencies' build first
|
|
254
|
+
"build": {
|
|
255
|
+
"dependsOn": ["^build"]
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
The `^` means "in dependency packages", not "in this package".
|
|
260
|
+
|
|
261
|
+
## Missing persistent on Dev Tasks
|
|
262
|
+
|
|
263
|
+
```json
|
|
264
|
+
// WRONG - dependent tasks hang waiting for dev to "finish"
|
|
265
|
+
"dev": {
|
|
266
|
+
"cache": false
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// CORRECT
|
|
270
|
+
"dev": {
|
|
271
|
+
"cache": false,
|
|
272
|
+
"persistent": true
|
|
273
|
+
}
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Package Config Missing extends
|
|
277
|
+
|
|
278
|
+
```json
|
|
279
|
+
// WRONG - packages/web/turbo.json
|
|
280
|
+
{
|
|
281
|
+
"tasks": {
|
|
282
|
+
"build": { "outputs": [".next/**"] }
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// CORRECT
|
|
287
|
+
{
|
|
288
|
+
"extends": ["//"],
|
|
289
|
+
"tasks": {
|
|
290
|
+
"build": { "outputs": [".next/**"] }
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Without `"extends": ["//"]`, Package Configurations are invalid.
|
|
296
|
+
|
|
297
|
+
## Root Tasks Need Special Syntax
|
|
298
|
+
|
|
299
|
+
To run a task defined only in root `package.json`:
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
# WRONG
|
|
303
|
+
turbo run format
|
|
304
|
+
|
|
305
|
+
# CORRECT
|
|
306
|
+
turbo run //#format
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
And in dependsOn:
|
|
310
|
+
|
|
311
|
+
```json
|
|
312
|
+
"build": {
|
|
313
|
+
"dependsOn": ["//#codegen"] // Root package's codegen
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Overwriting Default Inputs
|
|
318
|
+
|
|
319
|
+
```json
|
|
320
|
+
// WRONG - only watches test files, ignores source changes
|
|
321
|
+
"test": {
|
|
322
|
+
"inputs": ["tests/**"]
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// CORRECT - extends defaults, adds test files
|
|
326
|
+
"test": {
|
|
327
|
+
"inputs": ["$TURBO_DEFAULT$", "tests/**"]
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
Without `$TURBO_DEFAULT$`, you replace all default file watching.
|
|
332
|
+
|
|
333
|
+
## Caching Tasks with Side Effects
|
|
334
|
+
|
|
335
|
+
```json
|
|
336
|
+
// WRONG - deploy might be skipped on cache hit
|
|
337
|
+
"deploy": {
|
|
338
|
+
"dependsOn": ["build"]
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// CORRECT
|
|
342
|
+
"deploy": {
|
|
343
|
+
"dependsOn": ["build"],
|
|
344
|
+
"cache": false
|
|
345
|
+
}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Always disable cache for deploy, publish, or mutation tasks.
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
# Task Configuration Reference
|
|
2
|
+
|
|
3
|
+
Full docs: https://turborepo.dev/docs/reference/configuration#tasks
|
|
4
|
+
|
|
5
|
+
## dependsOn
|
|
6
|
+
|
|
7
|
+
Controls task execution order.
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"tasks": {
|
|
12
|
+
"build": {
|
|
13
|
+
"dependsOn": [
|
|
14
|
+
"^build", // Dependencies' build tasks first
|
|
15
|
+
"codegen", // Same package's codegen task first
|
|
16
|
+
"shared#build" // Specific package's build task
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
| Syntax | Meaning |
|
|
24
|
+
| ---------- | ------------------------------------ |
|
|
25
|
+
| `^task` | Run `task` in all dependencies first |
|
|
26
|
+
| `task` | Run `task` in same package first |
|
|
27
|
+
| `pkg#task` | Run specific package's task first |
|
|
28
|
+
|
|
29
|
+
The `^` prefix is crucial - without it, you're referencing the same package.
|
|
30
|
+
|
|
31
|
+
### Transit Nodes for Parallel Tasks
|
|
32
|
+
|
|
33
|
+
For tasks like `lint` and `check-types` that can run in parallel but need dependency-aware caching:
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"tasks": {
|
|
38
|
+
"transit": { "dependsOn": ["^transit"] },
|
|
39
|
+
"lint": { "dependsOn": ["transit"] },
|
|
40
|
+
"check-types": { "dependsOn": ["transit"] }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**DO NOT use `dependsOn: ["^lint"]`** - this forces sequential execution.
|
|
46
|
+
**DO NOT use `dependsOn: []`** - this breaks cache invalidation.
|
|
47
|
+
|
|
48
|
+
The `transit` task creates dependency relationships without running anything (no matching script), so tasks run in parallel with correct caching.
|
|
49
|
+
|
|
50
|
+
## outputs
|
|
51
|
+
|
|
52
|
+
Glob patterns for files to cache. **If omitted, nothing is cached.**
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"tasks": {
|
|
57
|
+
"build": {
|
|
58
|
+
"outputs": ["dist/**", "build/**"]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Framework examples:**
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
// Next.js
|
|
68
|
+
"outputs": [".next/**", "!.next/cache/**"]
|
|
69
|
+
|
|
70
|
+
// Vite
|
|
71
|
+
"outputs": ["dist/**"]
|
|
72
|
+
|
|
73
|
+
// TypeScript (tsc)
|
|
74
|
+
"outputs": ["dist/**", "*.tsbuildinfo"]
|
|
75
|
+
|
|
76
|
+
// No file outputs (lint, typecheck)
|
|
77
|
+
"outputs": []
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Use `!` prefix to exclude patterns from caching.
|
|
81
|
+
|
|
82
|
+
## inputs
|
|
83
|
+
|
|
84
|
+
Files considered when calculating task hash. Defaults to all tracked files in package.
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"tasks": {
|
|
89
|
+
"test": {
|
|
90
|
+
"inputs": ["src/**", "tests/**", "vitest.config.ts"]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Special values:**
|
|
97
|
+
|
|
98
|
+
| Value | Meaning |
|
|
99
|
+
| --------------------- | --------------------------------------- |
|
|
100
|
+
| `$TURBO_DEFAULT$` | Include default inputs, then add/remove |
|
|
101
|
+
| `$TURBO_ROOT$/<path>` | Reference files from repo root |
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"tasks": {
|
|
106
|
+
"build": {
|
|
107
|
+
"inputs": [
|
|
108
|
+
"$TURBO_DEFAULT$",
|
|
109
|
+
"!README.md",
|
|
110
|
+
"$TURBO_ROOT$/tsconfig.base.json"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## env
|
|
118
|
+
|
|
119
|
+
Environment variables to include in task hash.
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"tasks": {
|
|
124
|
+
"build": {
|
|
125
|
+
"env": [
|
|
126
|
+
"API_URL",
|
|
127
|
+
"NEXT_PUBLIC_*", // Wildcard matching
|
|
128
|
+
"!DEBUG" // Exclude from hash
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Variables listed here affect cache hits - changing the value invalidates cache.
|
|
136
|
+
|
|
137
|
+
## cache
|
|
138
|
+
|
|
139
|
+
Enable/disable caching for a task. Default: `true`.
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"tasks": {
|
|
144
|
+
"dev": { "cache": false },
|
|
145
|
+
"deploy": { "cache": false }
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Disable for: dev servers, deploy commands, tasks with side effects.
|
|
151
|
+
|
|
152
|
+
## persistent
|
|
153
|
+
|
|
154
|
+
Mark long-running tasks that don't exit. Default: `false`.
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"tasks": {
|
|
159
|
+
"dev": {
|
|
160
|
+
"cache": false,
|
|
161
|
+
"persistent": true
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Required for dev servers - without it, dependent tasks wait forever.
|
|
168
|
+
|
|
169
|
+
## interactive
|
|
170
|
+
|
|
171
|
+
Allow task to receive stdin input. Default: `false`.
|
|
172
|
+
|
|
173
|
+
```json
|
|
174
|
+
{
|
|
175
|
+
"tasks": {
|
|
176
|
+
"login": {
|
|
177
|
+
"cache": false,
|
|
178
|
+
"interactive": true
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## outputLogs
|
|
185
|
+
|
|
186
|
+
Control when logs are shown. Options: `full`, `hash-only`, `new-only`, `errors-only`, `none`.
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"tasks": {
|
|
191
|
+
"build": {
|
|
192
|
+
"outputLogs": "new-only" // Only show logs on cache miss
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## with
|
|
199
|
+
|
|
200
|
+
Run tasks alongside this task. For long-running tasks that need runtime dependencies.
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"tasks": {
|
|
205
|
+
"dev": {
|
|
206
|
+
"with": ["api#dev"],
|
|
207
|
+
"persistent": true,
|
|
208
|
+
"cache": false
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Unlike `dependsOn`, `with` runs tasks concurrently (not sequentially). Use for dev servers that need other services running.
|
|
215
|
+
|
|
216
|
+
## interruptible
|
|
217
|
+
|
|
218
|
+
Allow `turbo watch` to restart the task on changes. Default: `false`.
|
|
219
|
+
|
|
220
|
+
```json
|
|
221
|
+
{
|
|
222
|
+
"tasks": {
|
|
223
|
+
"dev": {
|
|
224
|
+
"persistent": true,
|
|
225
|
+
"interruptible": true,
|
|
226
|
+
"cache": false
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Use for dev servers that don't automatically detect dependency changes.
|
|
233
|
+
|
|
234
|
+
## description (Pre-release)
|
|
235
|
+
|
|
236
|
+
Human-readable description of the task.
|
|
237
|
+
|
|
238
|
+
```json
|
|
239
|
+
{
|
|
240
|
+
"tasks": {
|
|
241
|
+
"build": {
|
|
242
|
+
"description": "Compiles the application for production deployment"
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
For documentation only - doesn't affect execution or caching.
|
|
249
|
+
|
|
250
|
+
## passThroughEnv
|
|
251
|
+
|
|
252
|
+
Environment variables available at runtime but NOT included in cache hash.
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
{
|
|
256
|
+
"tasks": {
|
|
257
|
+
"build": {
|
|
258
|
+
"passThroughEnv": ["AWS_SECRET_KEY", "GITHUB_TOKEN"]
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Warning**: Changes to these vars won't cause cache misses. Use `env` if changes should invalidate cache.
|
|
265
|
+
|
|
266
|
+
## extends (Package Configuration only)
|
|
267
|
+
|
|
268
|
+
Control task inheritance in Package Configurations.
|
|
269
|
+
|
|
270
|
+
```json
|
|
271
|
+
// packages/ui/turbo.json
|
|
272
|
+
{
|
|
273
|
+
"extends": ["//"],
|
|
274
|
+
"tasks": {
|
|
275
|
+
"lint": {
|
|
276
|
+
"extends": false // Exclude from this package
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
| Value | Behavior |
|
|
283
|
+
| ---------------- | -------------------------------------------------------------- |
|
|
284
|
+
| `true` (default) | Inherit from root turbo.json |
|
|
285
|
+
| `false` | Exclude task from package, or define fresh without inheritance |
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Environment Variables in Turborepo
|
|
2
|
+
|
|
3
|
+
Turborepo provides fine-grained control over which environment variables affect task hashing and runtime availability.
|
|
4
|
+
|
|
5
|
+
## Configuration Keys
|
|
6
|
+
|
|
7
|
+
### `env` - Task-Specific Variables
|
|
8
|
+
|
|
9
|
+
Variables that affect a specific task's hash. When these change, only that task rebuilds.
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"tasks": {
|
|
14
|
+
"build": {
|
|
15
|
+
"env": ["DATABASE_URL", "API_KEY"]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### `globalEnv` - Variables Affecting All Tasks
|
|
22
|
+
|
|
23
|
+
Variables that affect EVERY task's hash. When these change, all tasks rebuild.
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"globalEnv": ["CI", "NODE_ENV"]
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### `passThroughEnv` - Runtime-Only Variables (Not Hashed)
|
|
32
|
+
|
|
33
|
+
Variables available at runtime but NOT included in hash. **Use with caution** - changes won't trigger rebuilds.
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"tasks": {
|
|
38
|
+
"deploy": {
|
|
39
|
+
"passThroughEnv": ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### `globalPassThroughEnv` - Global Runtime Variables
|
|
46
|
+
|
|
47
|
+
Same as `passThroughEnv` but for all tasks.
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"globalPassThroughEnv": ["GITHUB_TOKEN"]
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Wildcards and Negation
|
|
56
|
+
|
|
57
|
+
### Wildcards
|
|
58
|
+
|
|
59
|
+
Match multiple variables with `*`:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"env": ["MY_API_*", "FEATURE_FLAG_*"]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This matches `MY_API_URL`, `MY_API_KEY`, `FEATURE_FLAG_DARK_MODE`, etc.
|
|
68
|
+
|
|
69
|
+
### Negation
|
|
70
|
+
|
|
71
|
+
Exclude variables (useful with framework inference):
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"env": ["!NEXT_PUBLIC_ANALYTICS_ID"]
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Complete Example
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"$schema": "https://turborepo.dev/schema.v2.json",
|
|
84
|
+
"globalEnv": ["CI", "NODE_ENV"],
|
|
85
|
+
"globalPassThroughEnv": ["GITHUB_TOKEN", "NPM_TOKEN"],
|
|
86
|
+
"tasks": {
|
|
87
|
+
"build": {
|
|
88
|
+
"env": ["DATABASE_URL", "API_*"],
|
|
89
|
+
"passThroughEnv": ["SENTRY_AUTH_TOKEN"]
|
|
90
|
+
},
|
|
91
|
+
"test": {
|
|
92
|
+
"env": ["TEST_DATABASE_URL"]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|