javascript-conventions
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseJavaScript/Node.js Conventions
JavaScript/Node.js 开发约定
Apply these conventions when working on JavaScript or Node.js files or projects.
在处理 JavaScript 或 Node.js 相关文件或项目时遵循以下约定。
Dispatch
触发规则
| $ARGUMENTS | Action |
|---|---|
| Active (auto-invoked when working on JS/TS files) | Apply all conventions below |
| Empty | Display convention summary |
| Verify package manager compliance only |
| $ARGUMENTS | 操作 |
|---|---|
| Active(处理 JS/TS 文件时自动触发) | 应用以下所有约定 |
| Empty | 展示约定摘要 |
| 仅验证包管理器合规性 |
References
参考文档
| File | Purpose |
|---|---|
| Repo-specific exceptions and edge cases |
| 文件 | 用途 |
|---|---|
| 仓库特定的例外情况和边界场景 |
Package Management
包管理
- Use for all Node.js package management
pnpm - Do not use or
npmunless the project explicitly requires themyarn - Commands: ,
pnpm install,pnpm add <pkg>,pnpm run <script>pnpm exec <cmd> - Always commit -- never
pnpm-lock.yamlit.gitignore - Run in CI environments
pnpm install --frozen-lockfile
- 所有 Node.js 包管理统一使用
pnpm - 除非项目明确要求,否则不要使用 或
npmyarn - 常用命令:、
pnpm install、pnpm add <pkg>、pnpm run <script>pnpm exec <cmd> - 始终提交 文件,绝对不要将其加入
pnpm-lock.yaml.gitignore - 在 CI 环境中执行
pnpm install --frozen-lockfile
Monorepo Conventions
Monorepo 约定
- Use workspaces for multi-package repositories
pnpm - Define workspaces in at the repo root
pnpm-workspace.yaml - Use or
pnpm -rfor targeted operationspnpm --filter <pkg> - Hoist shared dependencies to the root where possible
- 多包仓库使用 workspaces 功能
pnpm - 在仓库根目录的 中定义 workspace 配置
pnpm-workspace.yaml - 执行定向操作时使用 或
pnpm -rpnpm --filter <pkg> - 尽可能将共享依赖提升到根目录
Lockfile Handling
Lockfile 处理
- Commit lockfiles to version control
- Use in CI to prevent drift
--frozen-lockfile - When migrating from npm/yarn, delete the old lockfile and run or
pnpm importpnpm install
- 将 lockfile 提交到版本控制系统
- 在 CI 中使用 参数避免依赖版本漂移
--frozen-lockfile - 从 npm/yarn 迁移时,删除旧的 lockfile 后执行 或
pnpm importpnpm install
Tooling Preferences
工具偏好
| Purpose | Tool |
|---|---|
| Package manager | |
| Bundler | |
| Linting | |
| Formatting | |
| Testing | |
| Type checking | |
| 用途 | 工具 |
|---|---|
| 包管理器 | |
| 打包工具 | |
| 代码检查 | |
| 格式化 | |
| 测试 | |
| 类型检查 | |
Critical Rules
关键规则
- Always use unless an existing lockfile or CI config mandates otherwise
pnpm - Never mix package managers in the same project (no alongside
npm install)pnpm - Commit to version control in every project
pnpm-lock.yaml - Run in CI -- never allow lockfile mutation
pnpm install --frozen-lockfile - Check before breaking any convention
references/edge-cases.md - Use instead of
pnpm execfor running local binariesnpx
Canonical terms (use these exactly):
- -- the required package manager (not npm, not yarn)
pnpm - --
lockfilespecificallypnpm-lock.yaml - -- pnpm workspace for monorepo packages
workspace - -- CI mode that prevents lockfile changes
frozen-lockfile
- 除非现有 lockfile 或 CI 配置另有要求,否则始终使用
pnpm - 同一个项目中绝对不要混用包管理器(不要同时使用 和
npm install)pnpm - 所有项目都必须将 提交到版本控制
pnpm-lock.yaml - CI 中执行 ,绝对不允许修改 lockfile
pnpm install --frozen-lockfile - 打破任何约定前请先查看
references/edge-cases.md - 运行本地二进制文件时使用 而不是
pnpm execnpx
规范术语(请严格按照以下表述使用):
- :强制要求使用的包管理器(不可用 npm、yarn 指代)
pnpm - :特指
lockfilepnpm-lock.yaml - :用于 monorepo 包管理的 pnpm workspace
workspace - :禁止修改 lockfile 的 CI 运行模式
frozen-lockfile