阅读量:42
Ubuntu下JavaScript依赖管理指南
在Ubuntu系统中,JavaScript依赖管理主要依赖包管理器(如npm、yarn、pnpm)和Node.js版本管理工具(如nvm)。以下是具体流程和常用操作:
1. 前置准备:安装Node.js与包管理器
JavaScript依赖管理需先安装Node.js(运行环境)和包管理器(如npm)。推荐使用**nvm(Node Version Manager)**管理Node.js版本,避免系统级权限问题和版本冲突。
- 安装nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc # 重新加载shell配置 - 安装Node.js:
nvm install node # 安装最新稳定版 nvm use node # 切换到该版本 - 验证安装:
node -v # 查看Node.js版本(如v18.x.x) npm -v # 查看npm版本(如9.x.x)
2. 核心工具:npm(Node.js默认包管理器)
npm是JavaScript生态中最基础的包管理器,通过package.json文件记录项目依赖。
- 初始化项目:
在项目根目录运行以下命令,生成package.json(记录项目信息、依赖及脚本):npm init -y # 快速生成默认配置 - 安装依赖:
- 本地安装(默认):将包安装到项目
node_modules目录,并添加到package.json的dependencies(生产环境依赖):npm install# 如npm install express - 开发依赖(仅开发阶段使用,如测试工具、构建工具):添加到
devDependencies:npm install--save-dev # 如npm install jest --save-dev - 全局安装(命令行工具,如pm2、nodemon):需
-g参数,安装到系统全局路径:npm install -g# 如npm install pm2 -g
- 本地安装(默认):将包安装到项目
- 常用操作:
- 更新依赖:
npm update(更新指定包)或npm update(更新所有包); - 卸载依赖:
npm uninstall; - 安装所有依赖:
npm install(根据package.json安装所有记录的依赖); - 查看依赖树:
npm list(本地依赖)或npm list -g(全局依赖); - 运行脚本:
npm run [removed](执行package.json中scripts定义的命令,如npm run dev)。
- 更新依赖:
3. 替代工具:yarn(更快的依赖管理器)
yarn是Facebook推出的包管理器,以更快的安装速度和严格的依赖锁定(通过yarn.lock文件)著称。
- 安装yarn:
npm install --global yarn # 通过npm安装 - 常用操作:
- 初始化项目:
yarn init -y(生成package.json); - 安装依赖:
yarn add(生产依赖)、yarn add(开发依赖);--dev - 全局安装:
yarn global add; - 更新依赖:
yarn upgrade; - 卸载依赖:
yarn remove; - 安装所有依赖:
yarn install(根据package.json或yarn.lock安装)。
- 初始化项目:
4. 新兴工具:pnpm(高效的依赖共享)
pnpm通过硬链接和符号链接共享依赖,大幅减少磁盘空间占用,适合大型项目。
- 安装pnpm:
npm install --global pnpm # 通过npm安装 - 常用操作:
- 初始化项目:
pnpm init; - 安装依赖:
pnpm add(生产依赖)、pnpm add(开发依赖);--save-dev - 全局安装:
pnpm add -g; - 更新依赖:
pnpm update; - 卸载依赖:
pnpm remove; - 安装所有依赖:
pnpm install(根据package.json或pnpm-lock.yaml安装)。
- 初始化项目:
5. 关键注意事项
- 依赖锁定:始终提交
package-lock.json(npm)、yarn.lock(yarn)或pnpm-lock.yaml(pnpm)到版本控制,确保团队协作时依赖版本一致; - 权限问题:避免使用
sudo安装全局包(易导致权限混乱),推荐通过nvm管理Node.js版本,或配置npm全局路径权限(如npm config set prefix ~/.npm-global); - 环境区分:使用
--production标志区分生产与开发环境(如npm install --production仅安装dependencies,忽略devDependencies)。
通过以上工具和流程,可高效管理Ubuntu系统中JavaScript项目的依赖,确保开发环境的一致性和稳定性。