npm是Node.js的包管理器,用于安装、共享和管理JavaScript代码包。它拥有全球最大的开源软件注册中心,支持版本控制、依赖管理和脚本执行,是JavaScript开发中不可或缺的工具。
Monorepo与工作区管理专题 专题说明 本专题讲解使用npm workspaces管理Monorepo多包项目,包括工作区配置、内部依赖管理、共享依赖提升以及批量脚本执行。 学习目标 掌握workspaces字段定义多包项目结构 理解工作区内部依赖管理与共享依赖版本同步 学会在所有或指定工作区中批量运行脚本 学习内容 workspaces配置:多包项目结构定义、路径配置 工作区依赖管理:内部依赖、共享依赖、版本同步 脚本批量执行:--workspace参数、选择性执行 学习建议 Monorepo适合多个关联包同时开发的场景 共享依赖会被提升到根node_modules减少重复安装 使用npm run -ws在所有工作区同时执行脚本
NPM基础概念与环境配置专题 专题说明 本专题讲解NPM的基本概念与开发环境配置,包括NPM的定位与作用、Node.js与NPM的安装流程,为后续学习奠定基础。 学习目标 理解NPM在Node.js生态中的核心定位与功能 掌握Node.js与NPM的安装及版本查看方法 了解Node版本管理工具(nvm等)的基本使用 学习内容 NPM概述:包管理器的定义、核心功能与生态系统价值 Node.js安装:不同操作系统的安装方式、LTS版本选择 NPM版本管理:npm -v查看版本、npm更新与Node版本管理 学习建议 初学者应从Node.js LTS版本开始,确保环境稳定 建议安装nvm等版本管理工具,便于切换Node版本 安装完成后用node -v和npm -v验证环境是否正确
npm scripts高级应用专题 专题说明 本专题深入npm scripts的高级用法,涵盖生命周期钩子机制、内置事件触发时机、脚本并行与串行执行控制、跨平台兼容方案以及参数传递技巧。 学习目标 掌握pre/post前缀定义脚本钩子与执行顺序 理解prepare、prepublishOnly等内置钩子的触发时机 能够使用&&、&与工具实现脚本组合控制 学会使用cross-env等工具解决跨平台兼容问题 掌握--分隔符向npm脚本传递命令行参数 学习内容 生命周期钩子:pre/post前缀、执行顺序 内置事件:prepare、prepublishOnly等触发时机 并行与串行:&&、&及工具组合控制 跨平台兼容:cross-env、rimraf等工具 参数传递:--分隔符传递命令行参数 学习建议 pre/post钩子是自动化工作流的核心,务必深入理解 跨平台项目应优先使用cross-env替代直接设置环境变量 复杂脚本建议使用npm-run-all等工具统一管理
package.json文件结构专题 专题说明 本专题全面讲解package.json文件的各个字段,从初始化创建到name/version命名规范、dependencies依赖声明、scripts脚本配置及其他元数据管理。 学习目标 熟练使用npm init创建和配置package.json 掌握包命名规范与语义化版本号格式 理解dependencies与devDependencies的区别与使用场景 能够编写和配置npm scripts脚本命令 学习内容 初始化:npm init交互式创建、默认配置与必填字段 name与version:包命名规范、版本格式要求 dependencies:生产依赖声明、版本范围表示法 scripts:自定义脚本命令、生命周期钩子 其他字段:description、keywords、license、repository等 学习建议 先掌握name、version、dependencies三个核心字段 理解scripts的pre/post钩子机制能大幅提升开发效率 实际项目中保持package.json字段规范,便于团队协作
企业级私有仓库部署专题 专题说明 本专题讲解使用Verdaccio搭建企业级私有NPM仓库的完整方案,包括部署配置、用户认证、存储管理及安全策略。 学习目标 掌握Verdaccio私有仓库的部署与基础配置 理解用户认证与权限管理机制 了解企业级部署的存储方案与安全策略 学习内容 Verdaccio部署:安装、基础配置、启动运行 认证与权限:用户管理、访问控制 企业方案:存储配置、安全策略、高可用部署 学习建议 Verdaccio适合中小团队的私有仓库需求 配合scope绑定实现公私仓库的混合使用 生产环境建议配置HTTPS和持久化存储
供应链安全与防护专题 专题说明 本专题聚焦NPM供应链安全领域,涵盖恶意包注入、依赖劫持、命名混淆等攻击手法的识别与防御,以及integrity校验和版本锁定等防护策略。 学习目标 理解供应链攻击的常见类型与手法 掌握依赖完整性验证的实现原理 学会通过精确版本号与锁文件防止版本篡改 学习内容 攻击类型:恶意包注入、依赖劫持、命名混淆 完整性验证:integrity校验、下载包哈希验证 版本锁定:精确版本号、锁文件防护 学习建议 安装第三方包前审查其维护状态与依赖数量 始终提交package-lock.json确保integrity校验生效 关注npm audit报告中的安全漏洞并及时修复
依赖管理基础专题 专题说明 本专题覆盖NPM依赖管理的核心操作,包括npm install安装依赖、版本范围语法、devDependencies与dependencies区分、npm uninstall卸载及npm update更新策略。 学习目标 掌握本地安装与全局安装的区别与使用场景 理解^、~等版本范围符号的含义与匹配规则 能正确区分生产依赖与开发依赖的安装参数 熟练使用卸载与更新命令管理项目依赖 学习内容 npm install:本地/全局安装、安装目录与命令格式 版本范围:^、~、>、<、>=等符号的语义 依赖分类:dependencies vs devDependencies npm uninstall:删除依赖并更新package.json npm update:版本范围内更新与锁文件更新 学习建议 牢记--save-dev用于开发依赖,--save用于生产依赖 版本范围符号是日常开发高频知识点,务必熟练掌握 定期执行npm outdated检查依赖过期情况
依赖管理深入专题 专题说明 本专题深入探讨NPM依赖管理的进阶知识,包括peerDependencies对等依赖机制、npm ci精确安装、两种安装命令的差异对比以及overrides强制覆盖版本。 学习目标 理解peerDependencies的宿主依赖声明与版本兼容机制 掌握npm ci基于lock文件的精确安装流程 能正确区分npm install与npm ci的适用场景 学会使用overrides解决深层依赖版本冲突 学习内容 peerDependencies:插件型包依赖声明、版本兼容与警告 npm ci:基于lock文件快速安装、团队一致性保证 install vs ci:行为差异、适用场景对比 overrides:强制覆盖版本、深层依赖版本问题解决 学习建议 CI/CD环境中始终使用npm ci确保依赖一致性 peerDependencies是开发插件/库时的必备知识 overrides应谨慎使用,仅在确有必要时强制覆盖
包开发与发布进阶专题 专题说明 本专题聚焦NPM包开发与发布的进阶技巧,包括本地调试、发布内容控制、打包测试、命名空间管理、权限控制与多版本分发标签。 学习目标 掌握npm link创建全局软链接进行本地调试 理解files字段白名单控制发布内容 学会使用npm pack本地打包验证 掌握scoped包命名空间与权限管理 理解dist-tag多版本分发标签的用法 学习内容 npm link:全局软链接、本地开发包引用 files字段:白名单配置、发布内容控制 npm pack:本地打包tgz、内容完整性验证 scoped包:@scope/name格式、私有作用域 npm access:访问权限管理、团队协作 npm dist-tag:latest/next/beta标签管理 学习建议 开发阶段用npm link实现实时调试,提升开发效率 发布前务必用npm pack --dry-run预览发布内容 scoped包是企业级开发的标配,建议尽早掌握
包生命周期与钩子机制专题 专题说明 本专题深入解析NPM包从安装到发布的完整生命周期,聚焦prepare和prepublishOnly等关键钩子的执行时机、触发条件与实战应用场景。 学习目标 理解从安装到发布的完整生命周期钩子执行顺序 掌握prepare钩子在安装和发布前的执行时机与用途 学会使用prepublishOnly在发布前执行测试与构建 学习内容 完整生命周期:各阶段钩子执行顺序与触发条件 prepare钩子:git依赖安装、发布前构建 prepublishOnly钩子:发布前测试、构建验证 学习建议 prepare钩子在npm install和npm publish时都会触发 prepublishOnly仅在npm publish时触发,适合最终验证 理解生命周期顺序有助于编排复杂的构建流程
包的查找与安装专题 专题说明 本专题讲解如何在NPM仓库中搜索和筛选合适的第三方包,以及使用@version语法精确安装指定版本的依赖。 学习目标 掌握npm search按关键词搜索包的方法 能够筛选和评估搜索结果中的候选包 熟练使用@version语法安装特定版本 学习内容 npm search:关键词搜索、结果筛选与排序 指定版本安装:@version语法、版本标签安装 学习建议 搜索时使用精准关键词,关注下载量和维护状态 生产环境中建议锁定具体版本号以保证构建一致性
基本命令使用专题 专题说明 本专题聚焦NPM日常开发中最常用的命令,涵盖脚本执行、依赖查看、过期检查与包信息查询等高频操作。 学习目标 熟练使用npm run执行package.json中定义的脚本 理解npm start与npm test的内置默认行为 掌握npm list查看依赖树及层级关系 能够用npm outdated和npm info管理依赖状态 学习内容 npm run:脚本执行、PATH注入与环境变量 npm start / npm test:内置生命周期命令与默认值 npm list:依赖树查看、层级与版本信息 npm outdated:过期检测、当前版本与最新版本对比 npm info:远程包元数据查询、版本列表 学习建议 npm run是最常用的命令之一,理解其PATH注入机制 善用npm list --depth=0快速查看顶层依赖 定期执行npm outdated保持依赖更新
安全审计与漏洞修复专题 专题说明 本专题讲解NPM安全审计工具的使用,包括npm audit扫描依赖漏洞、评估漏洞严重等级、自动修复兼容版本以及手动处理无法自动修复的漏洞。 学习目标 掌握npm audit扫描依赖漏洞与解读审计报告 理解漏洞严重等级(low/moderate/high/critical)的含义 学会使用npm audit fix自动修复兼容版本 能够手动升级依赖或使用overrides处理顽固漏洞 学习内容 npm audit:安全审计扫描、漏洞等级与影响范围 npm audit fix:自动修复、兼容版本更新 手动修复:升级依赖、overrides、替代方案 学习建议 CI/CD流水线中应集成npm audit作为安全检查卡点 无法自动修复时优先考虑升级主依赖而非使用overrides 定期关注NPM安全公告,及时响应高危漏洞
常见问题与排查专题 专题说明 本专题汇总NPM使用中的常见问题与排查方法,涵盖安装权限、缓存问题、依赖冲突与锁文件合并冲突等典型场景。 学习目标 能够诊断并解决EACCES等安装权限错误 掌握npm cache clean清除缓存解决安装异常 理解删除node_modules重装的时机与操作 学会处理多人协作时的package-lock.json冲突 学习内容 权限问题:EACCES错误原因、全局目录权限修复 缓存清理:npm cache clean的使用场景 重装策略:删除node_modules与package-lock重新安装 锁文件冲突:合并冲突的原因与解决步骤 学习建议 遇到诡异的安装问题,优先尝试"删node_modules + 清缓存 + 重装"三板斧 权限问题通常通过修改npm全局目录或使用nvm解决 package-lock冲突建议接受其中一方的版本后重新生成
性能优化与缓存策略专题 专题说明 本专题深入NPM性能优化领域,涵盖缓存机制的底层原理、安装速度的瓶颈分析与调优策略,以及如何分析依赖树并减少冗余依赖体积。 学习目标 理解NPM缓存存储结构与缓存键计算机制 掌握依赖安装性能分析与并行下载优化策略 学会分析依赖树、移除冗余依赖并选择轻量替代方案 学习内容 缓存机制:存储结构、缓存键计算、命中率优化 安装性能调优:速度瓶颈分析、并行下载策略 减少依赖体积:依赖树分析、冗余移除、轻量替代 学习建议 CI环境中配置npm缓存可大幅提升构建速度 定期使用depcheck等工具检查未使用的依赖 选择依赖时关注包体积,优先选择轻量方案
模块解析机制专题 专题说明 本专题深入解析Node.js模块解析机制,包括node_modules逐级查找规则、exports条件导出配置、多环境入口字段区分以及TypeScript类型定义支持。 学习目标 理解require的解析路径与node_modules逐级查找机制 掌握package.json exports字段的条件导出配置 能区分main/module/browser在不同环境下的入口选择 学会配置types字段支持TypeScript类型推断 学习内容 模块查找规则:require解析路径、逐级查找 exports条件导出:条件导出配置、子路径导出 入口字段:main/module/browser的区别与优先级 TypeScript支持:types字段、类型定义入口 学习建议 理解node_modules查找规则有助于调试模块加载问题 exports字段是现代包开发的推荐做法,优于main 同时提供main和module入口以兼容CommonJS和ESM
版本号规则与发布基础专题 专题说明 本专题系统讲解语义化版本SemVer规范、npm version命令的自动版本管理以及npm publish发布包的完整流程。 学习目标 深入理解主版本.次版本.修订号的语义与递增规则 掌握npm version自动更新版本号并创建Git标签 了解NPM账号注册、登录与包发布的完整流程 学习内容 SemVer规范:版本号三段式结构、递增规则 npm version:自动更新版本、Git标签与提交 npm publish:账号注册、登录认证、发布流程 学习建议 SemVer是NPM生态的基础规范,必须牢记各段含义 发布前务必用npm pack测试包内容 使用npm version patch/minor/major规范化版本管理
生态工具与最佳实践专题 专题说明 本专题对比分析NPM生态中pnpm与Yarn的依赖管理差异,并讲解团队依赖版本管理策略的制定与定期安全扫描流程。 学习目标 理解pnpm硬链接存储与非扁平node_modules的优势 对比Yarn Berry PnP与NPM的依赖管理差异 掌握制定团队依赖版本策略与定期更新流程 学习内容 pnpm对比:硬链接存储、非扁平结构优势 Yarn对比:Yarn Berry PnP、依赖管理差异 版本管理策略:团队策略制定、定期更新、安全扫描 学习建议 大型Monorepo项目推荐pnpm以节省磁盘空间 选择包管理器应综合考虑团队习惯和项目需求 建立定期的依赖更新与安全审查机制
私有仓库与镜像源专题 专题说明 本专题讲解NPM镜像源管理与私有仓库配置,涵盖镜像源切换加速下载、企业私有仓库部署与认证以及scope绑定registry的混合源管理策略。 学习目标 掌握镜像源切换方法,提升国内下载速度 理解企业私有仓库的配置与认证流程 学会为特定scope绑定私有registry实现混合管理 学习内容 镜像源切换:nrm工具、手动切换registry 企业私有仓库:配置私有地址、认证与发布 scope绑定:为命名空间指定私有仓库 学习建议 国内开发建议配置淘宝镜像或公司内部镜像源 混合源场景使用scope绑定实现公私分离 使用nrm可以快速在不同镜像源之间切换
锁文件机制深入专题 专题说明 本专题深入解析package-lock.json的机制,包括文件结构、resolved与integrity字段的完整性校验作用以及多人协作中的冲突处理策略。 学习目标 理解package-lock.json中packages与dependencies字段结构 掌握resolved锁定下载地址与integrity完整性校验的原理 学会处理多人协作时锁文件的合并冲突 学习内容 文件结构:packages、dependencies字段与完整性标识 resolved与integrity:下载地址锁定、哈希校验 冲突处理:合并冲突原因、解决策略与版本同步 学习建议 package-lock.json必须提交到版本控制,不可加入.gitignore 冲突时优先接受一方的版本,然后npm install重新生成 integrity字段是供应链安全的重要防线
本学科暂未提供模拟试卷。
npm 之外,这些学科也常被一起考察,搭配着刷效率更高。