package.json 文件的 dependencies 与 devDependencies 字段中声明项目所需的包及其版本范围package.json 后,根据语义化版本(semver)规则解析每个依赖应安装的具体版本node_modules 文件夹中,而非系统全局目录node_modules 顶层,减少嵌套层级node_modules 以隔离版本冲突package.json 中使用 ^(兼容版本)与 ~(补丁版本)等范围符号表达版本兼容性package-lock.json 文件记录依赖树中每个包的确切版本、下载地址与完整性校验值package.json 是 Node.js 项目的清单文件,声明项目名称、版本、描述、入口文件等基本信息dependencies 字段列出生产环境所需的运行时依赖devDependencies 字段列出仅在开发阶段需要的工具,如测试框架、代码检查工具、构建工具peerDependencies 声明由宿主项目提供的依赖,optionalDependencies 声明可选依赖scripts 字段定义项目级命令,如 start、build、test、lint 等bin 字段声明命令行工具入口,main 与 exports 字段指定模块入口files 字段控制发布到 npm 时包含哪些文件,engines 字段声明 Node.js 版本要求主版本号.次版本号.补丁号(MAJOR.MINOR.PATCH)三段式结构^1.2.3 允许 >=1.2.3 1.3.0,~1.2.3 允许 >=1.2.3 1.2.10^ 以获取补丁与次版本更新,生产依赖则根据稳定性需求选择更严格的范围npm update 命令根据 package.json 中的范围重新解析并更新依赖package.json,因为可能包含破坏性变更registry.npmjs.org 提供访问@org/package-name,允许组织在自有命名空间下发布包node_modules,仅对当前项目生效-g 参数,安装到系统级目录(如 /usr/local/lib/node_modules),对所有项目生效typescript、eslint、nodemon 等npx 替代全局安装,按需执行包而不污染全局环境npx 全称 Node Package eXecuter,随 npm 5.2+ 版本内置create-react-app)需要先全局安装,再执行,再卸载npx 允许直接运行 npx create-react-app my-app,执行完毕后不留下全局安装痕迹node_modules/.bin 中,npx 优先使用本地版本;否则临时下载执行npx 是 npm 生态的组成部分,共享 npm 的注册中心与认证机制package.json 的 scripts 字段允许开发者定义项目级命令,如 npm run build、npm testnode_modules/.bin 中的可执行文件,无需配置全局 PATHpre 与 post 前缀的钩子脚本,在主脚本前后自动执行prepare(发布前准备)、prepublishOnly(仅发布前执行)、prepack、postpack 等prepare 脚本在 npm publish 与本地 npm install 时均会运行,常用于编译源码npm_package_name、npm_package_version 等环境变量-- 分隔符向脚本传递额外参数,如 npm run build -- --watchnpm_config_* 前缀访问 npm 配置项,实现脚本的动态化npm ls 包名 命令查看依赖树,定位哪些包引入了冲突版本npm outdated 列出过时的依赖项,npm audit 检测存在安全漏洞的陈旧依赖npm dedupe 命令遍历本地包树,尝试将可共享的同版本依赖提升到更高层级lodash@4.17.0、包 B 依赖 lodash@4.17.20,dedupe 会合并为单一版本package.json 中配置 overrides 字段,强制所有嵌套依赖解析到指定版本"overrides": { "lodash": "4.17.21" } 可将整个依赖树中的 lodash 统一锁定"overrides": { "package-a>lodash": "4.17.21" } 仅针对特定依赖路径生效npm update 根据 package.json 中的版本范围,将依赖更新到最新的兼容版本package.jsonnpm update -g npm 可将 npm 自身升级到最新版本package-lock.json 记录依赖树中每个包的确切版本、下载地址(resolved)与完整性哈希(integrity)package.json 使用宽松的版本范围,锁定文件也能确保实际安装的版本固定package-lock.json 可以精确回退到之前的依赖状态package.json 不一致时,npm 会提示并等待开发者确认npm ci 命令可以基于锁定文件进行干净、可复现的安装package.json 中配置 name、version、description、main、files 等字段npm pack --dry-run 预览将要发布的文件,确保不含敏感信息(如 .env、密钥).npmignore 或 files 字段排除不需要发布的文件npm login 登录 npm 账号,或使用 Granular Access Token 进行认证npm publish --access public--access publicnpm stage publish 将包提交到暂存区,无需 2FAnpm publish,npm 自动通过 OIDC 验证并生成来源证明npm audit 命令将项目的依赖树描述提交到 npm 注册中心,与漏洞数据库进行交叉核对npm audit fix 可自动安装兼容的安全更新,npm audit fix --force 允许跨主版本升级npm audit signatures 命令可验证下载包的注册中心签名与 Sigstore 来源证明min-release-age 配置可拒绝发布少于指定天数的包,降低 typosquatting 风险npm ci(clean install)专为自动化环境设计,类似 npm install 但更严格package-lock.json,若与 package.json 不一致则直接报错退出node_modules,仅从锁定文件安装,绝不修改 package.json 或锁定文件node_modules 或 npm 缓存目录,加速后续构建./.npmrc)、用户级(~/.npmrc)、全局级($PREFIX/etc/npmrc)顺序加载配置@myorg:registry=https://npm.mycompany.com/_authToken、_auth、username、_password)必须按注册中心域名限定作用域npm login --registry=私有源地址 生成认证信息_authToken 或环境变量 ${NPM_TOKEN}_auth 字符串与客户端证书(certfile、keyfile)registry.npmjs.org,组织包走私有源npm_config_registry 环境变量可在 CI 中临时覆盖所有源的地址.npmrc 配置,保持工具链一致node_modules 结构,将依赖尽可能提升到顶层node_modules 布局node_modules,通过 .pnp.cjs 文件映射导入路径package.json 中声明但被传递安装的包