-
事件循环的阶段划分
Node.jsNodejs的事件循环是其异步IO模型的核心分为多个阶段每个阶段执行特定任务定时器阶段处理setTimeout和setInterval回调待定回调阶段执行系统操作回调如TCP错误轮询阶段处理IO事件和计算阻塞时间检查阶段执行setImmediate回调关闭回调阶段处理关闭事件如socket关闭微任务队列包括processnextTick和Promise回调优先于下一阶段执行事件循环阶段顺序固定有助于性能优化和错误处理浏览器与Nodejs事件循环有差异集群和子进程各有独立事件循环WorkerThreads提供多线程能力异步迭代和AbortController也依赖事件循环阶段可通过perfhooks监控和测量性能
陈川 【Node.js】
-
常用NPM替代工具(yarn/pnpm)
Node.jsNodejs生态中NPM是常用包管理工具但随着项目复杂度增加Yarn和PNPM凭借性能优化和依赖管理优势成为主流选择Yarn由Facebook开发通过yarnlock文件锁定版本支持并行下载和离线模式Yarn2引入PlugnPlay架构抛弃node_modulesPNPM采用硬链接技术节省磁盘空间严格隔离依赖避免幽灵依赖问题性能测试显示PNPM安装最快磁盘占用最少两者都支持工作区和依赖版本管理Yarn有resolutions字段PNPM有overrides安全方面Yarn默认校验完整性PNPM严格控制依赖访问迁移时可清理缓存或修复存储企业实践中可集成CICD配置私有仓库优化多阶段安装
陈川 【Node.js】
-
NPM私有仓库配置
Node.js企业内部开发需要共享私有模块时NPM私有仓库提供了安全可靠的解决方案常见私有仓库包括轻量级的Verdaccio功能强大的Nexus以及GitHub Packages文章详细讲解了Verdaccio的基本配置用户认证和包发布流程同时介绍了Nexus的安装权限设置和客户端配置还提供了企业级最佳实践如多环境策略CI集成和监控维护最后涵盖了常见问题解决方法高级主题如作用域包管理自定义插件以及安全考虑和与其他工具的集成帮助团队高效管理私有NPM模块
陈川 【Node.js】
-
NPM依赖管理
Node.jsNodejs的包管理器NPM是JavaScript生态的重要工具用于管理代码模块每个项目包含packagejson文件记录元数据和依赖关系NPM使用语义化版本控制提供精确版本兼容版本和近似版本三种锁定方式依赖分为生产依赖开发依赖和对等依赖不同类型NPM安装依赖时会检查文件构建依赖树下载解压并执行脚本packagelockjson确保依赖版本一致NPM通过共用实例或独立安装解决依赖冲突提供安全审计功能优化策略包括减少依赖数量使用精确版本和缓存优化支持工作区管理monorepo项目自定义脚本定义开发命令最佳实践包括提交lock文件使用npmci命令和定期更新依赖
陈川 【Node.js】
-
全局安装与本地安装
Node.jsNodejs的包管理工具npm和yarn支持全局安装和本地安装两种方式全局安装的包放在系统特定目录下可直接在命令行使用本地安装的包放在项目node_modules目录中仅限当前项目使用全局安装适合跨项目使用的工具如脚手架工具本地安装适合项目依赖的库全局安装优点是方便使用和节省空间缺点是可能引发版本冲突本地安装优点是版本隔离和可移植性好缺点是占用更多磁盘空间选择安装方式时命令行工具适合全局安装项目依赖适合本地安装全局安装路径在系统目录本地安装路径在项目node_modules中可使用npx运行本地安装的工具版本管理方面全局包通过命令管理本地包通过packagejson管理常见问题包括环境变量配置和包找不到等实际开发中常结合使用两种安装方式
陈川 【Node.js】
-
NPM脚本(npm scripts)
Node.jsnpm scripts是Nodejs项目中通过packagejson的scripts字段定义的任务执行工具能够简化命令行操作并实现复杂自动化流程文章详细讲解了基本用法包括预定义脚本和自定义脚本的使用方法以及如何通过环境变量传递参数还介绍了串行并行执行的技巧和跨平台兼容性解决方案对于复杂脚本建议模块化为单独JS文件处理同时利用钩子脚本实现自动化流程调试时可添加inspect参数文章还提供了性能优化技巧真实项目示例错误处理策略和自动化部署流程最后展示了本地开发环境的常用配置脚本
陈川 【Node.js】
-
语义化版本控制
Node.js语义化版本控制SemVer是一种版本号命名规范由三个数字组成主版本号次版本号和修订号分别表示不兼容的API变更新增向后兼容功能和修复向后兼容的bug版本号还可包含预发布标签和构建元数据版本范围语法允许灵活指定依赖版本如允许次版本号和修订号更新或仅修订号更新实际应用中可通过npm命令管理版本升级依赖版本冲突可通过锁定文件解决工具如npm提供命令检查更新依赖和安装特定版本确保开发环境一致性
陈川 【Node.js】
-
NPM常用命令
Node.jsNode.js的包管理工具NPM是开发者日常工作的核心工具熟练掌握常用命令能显著提升开发效率从项目初始化到依赖管理再到脚本执行和发布包NPM提供了完整的工具链初始化项目使用npm init安装依赖使用npm install移除依赖使用npm uninstall更新依赖使用npm update执行脚本使用npm run查看依赖树使用npm list检查安全漏洞使用npm audit发布包使用npm publish管理配置使用npm config清理缓存使用npm cache直接运行命令使用npm exec本地开发链接包使用npm link管理版本号使用npm version检查环境使用npm doctor打包使用npm pack查看文档使用npm docs搜索包使用npm search测试连接使用npm ping管理所有者使用npm owner标记废弃版本使用npm deprecate管理令牌使用npm token修改资料使用npm profile
陈川 【Node.js】
-
package.json文件详解
Node.jspackagejson是Nodejs项目的核心配置文件定义了项目的元信息依赖关系和脚本命令等它包含项目元信息如名称版本描述和许可证依赖管理如运行时依赖开发依赖和可选依赖脚本命令如启动构建测试和自定义脚本以及配置选项如入口文件运行环境要求和浏览器支持范围此外还可以定义代码仓库作者信息和私有项目标志packagejson通过标准字段和自定义字段灵活管理项目行为是开发工具和运行环境的重要依据
陈川 【Node.js】
-
包与NPM的基本概念
Node.jsNodejs生态中包和NPM是核心工具包是代码集合必须包含packagejson文件作为身份说明版本遵循语义化规范NPM作为包管理器提供依赖管理脚本执行版本控制发布共享等功能依赖解析采用扁平化策略支持作用域包避免命名冲突本地开发可通过npm link测试私有仓库可使用Verdaccio等方案现代实践包括锁定依赖版本安全审计依赖检查包开发需完善文档测试和规范Nodejs支持CommonJS和ES模块性能优化需最小化依赖按需加载常见问题包括版本冲突安装失败权限问题网络问题可通过配置镜像源解决
陈川 【Node.js】