Skills Plugins MCP Prompt Model 博客 我的中心
Development #javascript #typescript

antfu

Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript projects. Use when setting up new projects, configuring ESLint/Prettier alternatives, monorepos, library publishing, or when the user mentions Anthony Fu's preferences.

DeepseekModel Curated skill Quality Excellent · 90 v1.0.0

Get

https://deepseekmodel.com/api/download.php?id=antfu-skills-skills-antfu-skill-md&format=skill
Download .skill Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name antfu description Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript projects. Use when setting up new projects, configuring ESLint/Prettier alternatives, monorepos, library publishing, or when the user mentions Anthony Fu's preferences. metadata {"author":"Anthony Fu","version":"2026.06.22"} Coding Practices Code Organization Single responsibility : Each source file should have a clear, focused scope/purpose Split large files : Break files when they become large or handle too many concerns Type separation : Always separate types and interfaces into types.ts or types/*.ts Constants extraction : Move constants to a dedicated constants.ts file Runtime Environment Prefer isomorphic code : Write runtime-agnostic code that works in Node, browser, and workers whenever possible Clear runtime indicators : When code is environment-specific, add a comment at the top of the file: // @env node // @env browser TypeScript Explicit return types : Declare return types explicitly when possible Avoid complex inline types : Extract complex types into dedicated type or interface declarations Explicitness Favor explicit, traceable code over implicit "magic". A reader (human or agent) should be able to follow where every name comes from without running tooling. Explicit imports : Prefer explicit import statements. Avoid auto-imports — when a framework provides them (e.g. Nuxt/Nitro), turn them off for new projects (see app-development ). No path aliases by default : Use relative imports ( ./foo , ../bar ). Only use path aliases ( @/ , ~/ , #imports , etc.) when they are already configured in the project; don't introduce new ones for greenfield code. Comments Avoid unnecessary comments : Code should be self-explanatory Explain "why" not "how" : Comments should describe the reasoning or intent, not what the code does Testing (Vitest) Test files: foo.ts → foo.test.ts (same directory) Use describe / it API (not test ) Use toMatchSnapshot for complex outputs Use toMatchFileSnapshot with explicit path for language-specific snapshots Tooling Choices @antfu/ni Commands Command Description ni Install dependencies ni <pkg> / ni -D <pkg> Add dependency / dev dependency nr <script> Run script nu Upgrade dependencies nun <pkg> Uninstall dependency nci Clean install ( pnpm i --frozen-lockfile ) nlx <pkg> Execute package ( npx ) Checking npm Package Versions Use fast-npm-meta to look up the latest version of a package — it queries a small metadata endpoint instead of downloading the full registry payload (which can be megabytes per package). nlx fast-npm-meta version vite # 7.3.1 nlx fast-npm-meta version "nuxt@^3.5" # 3.5.22 — range-aware nlx fast-npm-meta version vite nuxt vue # multiple at once nlx fast-npm-meta version vite --json # JSON for scripting nlx fast-npm-meta full vite # full version list + dist-tags Prefer this over npm view <pkg> version when you only need the latest version, and over reading package.json from the registry directly. TypeScript Config { "compilerOptions" : { "target" : "ESNext" , "module" : "ESNext" , "moduleResolution" : "bundler" , "strict" : true , "esModuleInterop" : true , "skipLibCheck" : true , "resolveJsonModule" : true , "isolatedModules" : true , "noEmit" : true } } ESLint Setup // eslint.config.mjs import antfu from '@antfu/eslint-config' export default antfu () When completing tasks, run pnpm run lint --fix to format the code and fix coding style. For detailed configuration options: antfu-eslint-config Git Hooks { "simple-git-hooks" : { "pre-commit" : "pnpm i --frozen-lockfile --ignore-scripts --offline && npx lint-staged" } , "lint-staged" : { "*" : "eslint --fix" } , "scripts" : { "prepare" : "npx simple-git-hooks" } } pnpm Catalogs Use named catalogs in pnpm-workspace.yaml for version management: Catalog Purpose prod Production dependencies inlined Bundler-inlined dependencies dev Dev tools (linter, bundler, testing) frontend Frontend libraries Avoid the default catalog. Catalog names can be adjusted per project needs. References Topic Description Reference ESLint Config Framework support, formatters, rule overrides, VS Code settings antfu-eslint-config Project Setup .gitignore, GitHub Actions, VS Code extensions setting-up App Development Vue/Nuxt/UnoCSS conventions, auto-import control, Storybook component testing app-development Library Development tsdown bundling, pure ESM publishing library-development Monorepo pnpm workspaces, centralized alias, Turborepo monorepo
Keywords that activate this skill. Click one to copy it.

This skill does not provide trigger words.

The downloaded .skill package contains the following fields.
Field Description
formatFormat tag (skill/v1)
skill_idUnique skill ID
nameSkill name
versionVersion
descriptionDescription
categoryCategories (array)
trigger_wordsTrigger words
tagsTags
sourceSource
source_urlSource URL (this page)
exported_atExported at (set per download)
system_promptSystem prompt body
model_configModel config: provider / model / temperature / max_tokens / top_p
examplesExamples
install_guideImport guide for Coze / Dify / Claude / custom frameworks
The same skill can be exported in different platform formats.
.skill Standard format with system_prompt and model_config, ready for any agent framework Download
.skillpro Enhanced format with scripts, tools, dependencies and hooks Download
.json Plain JSON export with system_prompt and model parameters only Download
Coze Markdown with frontmatter, for Coze platform import Download
Dify Dify DSL, import directly after creating an app Download

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

验证码 --

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。