smithery/martin-janci

nuxt-setup

Setup Nuxt/Vue/TypeScript project. Use when user needs to install dependencies, prepare Nuxt, setup LSP, or fix TypeScript errors in a Nuxt/Vue project. Works in both main repo and worktrees.

Installation

$ npx skills add smithery/martin-janci --skill nuxt-setup

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/martin-janci.

npx skills add smithery/martin-janci

Browse all from smithery/martin-janci

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,288 B
  • docs SUMMARY.md 209 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Nuxt/Vue/TypeScript Project Setup

Overview

Complete setup workflow for Nuxt 3 projects - from fresh clone to working LSP with full TypeScript support.

Announce at start: "I'm using the nuxt-setup skill to prepare this project."

Quick Setup (TL;DR)

# 1. Detect package manager and install deps
yarn install  # or npm/pnpm based on lockfile

# 2. Prepare Nuxt (generates .nuxt types)
npx nuxt prepare

# 3. Verify TypeScript
npx vue-tsc --noEmit

Package Manager Detection

Auto-detect from lockfile:

File Package Manager
yarn.lock yarn
package-lock.json npm
pnpm-lock.yaml pnpm
bun.lockb bun
# Detection logic
if [ -f yarn.lock ]; then
    PM="yarn"
elif [ -f pnpm-lock.yaml ]; then
    PM="pnpm"
elif [ -f bun.lockb ]; then
    PM="bun"
else
    PM="npm"
fi

Full Setup Workflow

1. Install Dependencies

# Yarn (check .yarnrc.yml for version)
yarn install

# NPM
npm install

# PNPM
pnpm install

# Bun
bun install

Common issues:

  • Yarn v2+ (Berry): Check .yarnrc.yml for nodeLinker setting
  • Node version mismatch: Check .nvmrc or engines in package.json

2. Prepare Nuxt

npx nuxt prepare

This generates:

  • .nuxt/ directory
  • .nuxt/tsconfig.json - TypeScript paths
  • .nuxt/types/ - Auto-imports, components, composables types

Must run after:

  • Fresh clone
  • Adding new auto-imported composables
  • Changing nuxt.config.ts

3. Verify TypeScript

# Full type check
npx vue-tsc --noEmit

# Quick check specific file
npx vue-tsc --noEmit path/to/file.vue

4. LSP Setup

VS Code (Volar)

Required extensions:

  • Vue - Official (Vue.volar)

Settings (.vscode/settings.json):

{
  "typescript.tsdk": "node_modules/typescript/lib",
  "vue.server.hybridMode": true
}

Neovim (vue-language-server)

Mason install:

:MasonInstall vue-language-server typescript-language-server

LSP config:

require('lspconfig').volar.setup({
  filetypes = { 'vue', 'typescript', 'javascript' },
  init_options = {
    vue = {
      hybridMode = true,
    },
  },
})

Claude Code (bash-language-server + vue-tsc)

Verify setup:

# Check if types resolve
npx vue-tsc --noEmit 2>&1 | head -20

Troubleshooting TypeScript Errors

"Cannot find module" for auto-imports

# Regenerate types
rm -rf .nuxt
npx nuxt prepare

"Cannot find module '#imports'"

The #imports alias is generated by Nuxt. Fix:

npx nuxt prepare

Component type errors after adding new component

# Regenerate component types
npx nuxt prepare

Path aliases not resolving (@/, ~/. #/)

Check tsconfig.json extends .nuxt/tsconfig.json:

{
  "extends": "./.nuxt/tsconfig.json"
}

Type errors in node_modules

Add to tsconfig.json:

{
  "compilerOptions": {
    "skipLibCheck": true
  }
}

Volar + TypeScript version mismatch

# Use workspace TypeScript
# VS Code: Cmd+Shift+P → "TypeScript: Select TypeScript Version" → "Use Workspace Version"

Worktree Integration

When setting up a worktree:

# 1. After worktree creation, cd into it
cd .worktrees/<branch-name>

# 2. Install dependencies (node_modules not shared)
yarn install

# 3. Prepare Nuxt (types not shared)
npx nuxt prepare

# 4. Verify
npx vue-tsc --noEmit

Note: Each worktree needs its own node_modules and .nuxt directory.

Environment Setup

.env files

# Check required env vars
cat .env.example

# Copy and fill
cp .env.example .env

Runtime config

Nuxt uses runtimeConfig in nuxt.config.ts. Check for required env vars:

grep -A20 "runtimeConfig" nuxt.config.ts

Build Verification

# Development server
npx nuxt dev

# Production build
npx nuxt build

# Preview production
npx nuxt preview

Common Project Files

File Purpose
nuxt.config.ts Nuxt configuration
tsconfig.json TypeScript config (extends .nuxt/tsconfig.json)
.nuxt/ Generated types and build artifacts
app.vue Root component
pages/ File-based routing
components/ Auto-imported components
composables/ Auto-imported composables
server/ Nitro server routes

Quick Reference

Issue Solution
Missing types npx nuxt prepare
Module not found yarn install && npx nuxt prepare
LSP not working Restart LSP, check tsconfig extends .nuxt
Auto-imports broken rm -rf .nuxt && npx nuxt prepare
Wrong TS version Select workspace TypeScript in editor
Worktree setup Install deps + nuxt prepare in worktree

Red Flags

Never:

  • Skip nuxt prepare after clone
  • Share node_modules between worktrees (symlinks break)
  • Ignore .nuxt/tsconfig.json in project tsconfig

Always:

  • Run nuxt prepare after config changes
  • Use workspace TypeScript version
  • Check env vars before running