
Nuxt Modules
Copy-paste GitHub Actions workflows so a Nuxt module or library repo gets lint, typecheck, test, PR preview packages, and tagged npm releases without writing CI from scratch.
Overview
Nuxt-modules (CI Workflow Templates) is an agent skill for the Ship phase that supplies GitHub Actions recipes for linting, testing, PR preview packages, and tagged npm releases for Nuxt module repos.
Install
npx skills add https://github.com/onmax/nuxt-skills --skill nuxt-modulesWhat is this skill?
- Three workflow templates: ci.yml (lint, typecheck, test), pkg.yml (pkg-pr-new previews on PRs), release.yml (npm + GitHu
- ci.yml runs on push to main, tags v*, and pull requests with pnpm on Node 22
- pkg.yml publishes preview packages after prepack for every PR and main push
- release.yml waits for CI then publishes via npm trusted publishing (OIDC) and creates a GitHub release
- Includes npm Trusted Publishing setup notes for OIDC-based publish without long-lived tokens
- 3 workflow templates: ci.yml, pkg.yml, release.yml
- ci.yml job chain includes lint, typecheck, and test after pnpm install and dev:prepare
Adoption & trust: 1.6k installs on skills.sh; 674 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your Nuxt module repo has no reliable CI, no PR preview packages, and manual npm publishes that break whenever someone forgets a step.
Who is it for?
Indie maintainers publishing a Nuxt module or library who want GitHub Actions parity with mature OSS projects.
Skip if: Teams needing Vercel/Netlify app deploy pipelines, Docker/K8s runtime deploys, or non-Node backends—the templates are module CI and npm release only.
When should I use this skill?
Setting up or fixing GitHub Actions for a Nuxt module repo: CI on PRs, preview packages, or tagged npm/GitHub releases.
What do I get? / Deliverables
You get working ci.yml, pkg.yml, and release.yml workflows aligned with pnpm and npm trusted publishing so every PR and tag follows the same ship path.
- ci.yml for lint, typecheck, and test on push/PR/tags
- pkg.yml for pkg-pr-new preview publishes
- release.yml for OIDC npm publish and GitHub release on version tags
Recommended Skills
Journey fit
Ship is the primary phase because the skill delivers release automation and quality gates you turn on when the module is ready to publish and maintain—not when sketching UI. Launch subphase matches tag-driven npm publish, GitHub releases, and pkg-pr-new previews that unblock distribution of a Nuxt package.
How it compares
Use these copy-paste workflow files instead of asking the agent to invent GitHub Actions from memory on every new Nuxt package repo.
Common Questions / FAQ
Who is nuxt-modules for?
Solo developers and small teams shipping Nuxt ecosystem packages who need standard CI, preview installs, and semver releases on GitHub.
When should I use nuxt-modules?
In Ship launch when you add `.github/workflows` to a module repo, before your first npm publish, or when you want pkg-pr-new previews on every pull request.
Is nuxt-modules safe to install?
Workflows grant CI permissions and npm publish via OIDC—review the Security Audits panel on this page and lock down repo secrets and environment protection rules before merging.
SKILL.md
READMESKILL.md - Nuxt Modules
# CI Workflow Templates Copy-paste templates for GitHub Actions. ## Contents - [ci.yml](#ciyml) - Lint, typecheck, test - [pkg.yml](#pkgyml) - Preview packages via pkg-pr-new - [release.yml](#releaseyml) - npm publish + GitHub release - [npm Trusted Publishing Setup](#npm-trusted-publishing-setup) --- ## ci.yml Runs lint, typecheck, and tests on every push/PR/tag. ```yaml name: ci on: push: branches: [main] tags: ['v*'] pull_request: branches: [main] jobs: ci: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - run: pnpm install - run: pnpm dev:prepare - run: pnpm lint - run: pnpm typecheck - run: pnpm test ``` ## pkg.yml Publishes preview packages for every PR via pkg-pr-new. ```yaml name: pkg.new on: push: branches: [main] pull_request: branches: [main] jobs: pkg: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - run: pnpm install - run: pnpm dev:prepare - run: pnpm prepack - run: pnpm dlx pkg-pr-new publish ``` ## release.yml Triggered by tag push. Waits for CI, then publishes to npm via OIDC + creates GitHub release. ```yaml name: release permissions: id-token: write contents: write actions: read on: push: tags: - 'v*' jobs: wait-for-ci: runs-on: ubuntu-latest steps: - name: Wait for CI to complete uses: lewagon/wait-on-check-action@v1.3.4 with: ref: ${{ github.sha }} check-name: ci repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 10 release: needs: wait-for-ci runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 24 cache: pnpm registry-url: 'https://registry.npmjs.org' - run: pnpm install - run: pnpm dev:prepare - run: pnpm prepack - name: GitHub Release run: pnpm dlx changelogithub env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - name: Publish to npm run: npm publish --provenance --access public ``` ## npm Trusted Publishing Setup (OIDC) **Preferred method** - No `NPM_TOKEN` secret needed. Uses OIDC for secure, tokenless authentication. **See also:** [ts-library/ci-workflows.md](../../ts-library/references/ci-workflows.md) for general TypeScript library CI patterns. ### Requirements 1. **Node.js 24+** (npm 11.5.1+ required for OIDC - Node 22 has npm 10.x which fails) 2. **Workflow permissions**: `id-token: write` 3. **Publish command**: must include `--provenance` flag 4. **package.json**: must have `repository` field for provenance verification 5. **npm 2FA setting**: "Require 2FA or granular access token" (first option, allows tokens) ### package.json Requirements Each package must have a `repository` field or provenance verification fails: ```json { "name": "my-package", "repository": { "type": "git", "url": "git+https://github.com/org/repo.git" } } ``` ### Setup Steps 1. **Open package settings**: `https://www.npmjs.com/package/<PACKAGE_NAME>/access` 2. **Scroll to "Publishing access"** section 3. **Click "Add GitHub Actions"** under Trusted Publishers 4. **Fill in the form**: - Owner: `<github-org-or-username>` - Repository: `<repo-name>` - Workflow file: `release.yml` - Environment: _(leave empty)_ 5. **Click "Add"** Repeat for each package in your monorepo. ### Troubleshooting | Error | Cause | Fix | | -----