在 VS Code 中使用终端克隆 Element Plus 项目的完整流程
1. 准备工作
1.1 安装必要软件
1.2 在 VS Code 中打开终端
-
快捷键:``Ctrl + ```(反引号)
-
或者:菜单栏 → 查看 → 终端
2. 完整克隆流程
2.1 导航到目标目录
bash
# 查看当前目录
pwd
# 切换到你想存放项目的目录(例如:Documents)
cd ~/Documents
# 或者创建一个专门存放项目的文件夹
mkdir projects
cd projects
2.2 克隆 Element Plus 仓库
bash
# 使用 git clone 命令克隆项目
git clone https://github.com/element-plus/element-plus.git
# 如果你想重命名文件夹,可以这样写
# git clone https://github.com/element-plus/element-plus.git my-element-plus
2.3 进入项目目录
bash
cd element-plus
3. 项目初始化和设置
3.1 安装依赖
bash
# Element Plus 使用 pnpm,如果你没有安装 pnpm,先安装它
npm install -g pnpm
# 安装项目依赖
pnpm install
# 或者使用 npm(如果项目支持)
npm install
3.2 查看项目结构
bash
# 列出项目文件和文件夹
ls -la
# 或者使用 VS Code 的资源管理器查看
4. VS Code 中的实用操作
4.1 在 VS Code 中打开项目
bash
# 在终端中直接打开当前目录
code .
# 或者通过 VS Code 菜单:文件 → 打开文件夹
4.2 配置 Git 相关扩展(可选)
-
安装 GitLens 扩展
-
安装 Git Graph 扩展
4.3 使用源代码管理面板
-
左侧活动栏 → 源代码管理图标(或 Ctrl+Shift+G)
-
查看文件变更状态
-
提交更改
5. 项目开发常用命令
bash
# 启动开发服务器
pnpm dev
# 运行测试
pnpm test
# 构建项目
pnpm build
# 查看所有可用命令
pnpm run
6. Git 基本操作(后续使用)
bash
# 查看当前状态
git status
# 查看提交历史
git log --oneline
# 拉取最新更新
git pull
# 创建新分支
git checkout -b feature-branch
# 切换分支
git checkout main
7. 完整示例脚本
bash
#!/bin/bash
# 这是一个完整的克隆和初始化示例
echo "开始克隆 Element Plus 项目..."
# 1. 创建并进入项目目录
mkdir -p ~/projects
cd ~/projects
# 2. 克隆项目
git clone https://github.com/element-plus/element-plus.git
echo "克隆完成!"
# 3. 进入项目目录
cd element-plus
# 4. 检查 Node.js 版本
node --version
# 5. 安装 pnpm(如果未安装)
if ! command -v pnpm &> /dev/null; then
echo "正在安装 pnpm..."
npm install -g pnpm
fi
# 6. 安装依赖
echo "正在安装依赖..."
pnpm install
echo "项目准备就绪!"
echo "使用 'cd ~/projects/element-plus && code .' 在 VS Code 中打开项目"
8. 常见问题和解决方案
问题1:git clone 速度慢
bash
# 使用 GitHub 镜像
git clone https://github.com.cnpmjs.org/element-plus/element-plus.git
# 或使用深度克隆减少历史记录
git clone --depth=1 https://github.com/element-plus/element-plus.git
问题2:权限被拒绝
bash
# 检查 SSH 密钥设置
ssh -T git@github.com
# 或者使用 HTTPS 方式
git config --global credential.helper store
问题3:pnpm 安装失败
bash
# 使用 npm 替代
npm install
# 或清除缓存后重试
pnpm store prune
9. VS Code 终端提示
-
多终端:可以同时打开多个终端(Ctrl+Shift+5)
-
终端选择器:点击终端面板右上角的 "+" 或下拉菜单
-
拆分终端:右键终端 → 拆分
-
命令历史:使用上下箭头键查看之前执行的命令
10. 验证安装成功
bash
# 在 element-plus 目录中运行
cd element-plus
pnpm --version
git --version
npm --version
# 运行开发服务器测试
pnpm dev
按照这个流程,你就可以在 VS Code 中成功克隆并开始使用 Element Plus 项目了。
本回答由 AI 生成,内容仅供参考,请仔细甄别。
mumu@MuJinqiu:~/projects git clone https://github.com.cnpmjs.org/element-plus/element-plus.git Cloning into 'element-plus'... fatal: unable to access 'https://github.com.cnpmjs.org/element-plus/element-plus.git/': Could not resolve host: github.com.cnpmjs.org mumu@MuJinqiu:\~/projects
看起来是 DNS 解析问题。让我们尝试几种不同的解决方案:
解决方案 1:使用不同的镜像源
尝试其他 GitHub 镜像:
bash
# 镜像1:fastgit
git clone https://hub.fastgit.org/element-plus/element-plus.git
# 镜像2:ghproxy
git clone https://ghproxy.com/https://github.com/element-plus/element-plus.git
# 镜像3:直接使用官方源(可能较慢但稳定)
git clone https://github.com/element-plus/element-plus.git
解决方案 2:配置 DNS(临时)
修改 /etc/hosts 文件:
bash
# 首先备份
sudo cp /etc/hosts /etc/hosts.bak
# 添加 GitHub 相关域名(使用管理员权限)
sudo nano /etc/hosts
# 在文件末尾添加以下内容(任选一组IP):
# GitHub 镜像1
140.82.112.4 github.com
199.232.69.194 github.global.ssl.fastly.net
# 或者使用其他IP
185.199.108.153 github.com
185.199.109.153 github.com
185.199.110.153 github.com
185.199.111.153 github.com
# 保存后刷新DNS缓存
sudo systemd-resolve --flush-caches
# 或者
sudo /etc/init.d/nscd restart
解决方案 3:使用 SSH 方式克隆
首先设置 SSH 密钥(如果你还没有):
bash
# 检查是否已有SSH密钥
ls -al ~/.ssh
# 如果没有,生成新的SSH密钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 查看公钥并添加到GitHub
cat ~/.ssh/id_rsa.pub
# 然后使用SSH克隆
git clone git@github.com:element-plus/element-plus.git
解决方案 4:使用 Git 代理(如果你有)
bash
# 设置代理
git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy https://proxy.example.com:8080
# 然后再试
git clone https://github.com/element-plus/element-plus.git
# 完成后取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
解决方案 5:使用压缩和深度克隆
bash
# 使用浅克隆(只下载最新版本)
git clone --depth=1 https://github.com/element-plus/element-plus.git
# 或者使用压缩
git config --global http.postBuffer 524288000
git clone https://github.com/element-plus/element-plus.git
解决方案 6:检查网络连接
bash
# 测试网络连通性
ping -c 4 github.com
ping -c 4 8.8.8.8
# 测试DNS解析
nslookup github.com
dig github.com
# 检查代理设置
echo $http_proxy
echo $https_proxy
解决方案 7:使用 wget 或 curl 先下载(备用方案)
bash
# 下载zip包
wget https://github.com/element-plus/element-plus/archive/refs/heads/main.zip
# 或
curl -L -o element-plus.zip https://github.com/element-plus/element-plus/archive/refs/heads/main.zip
# 解压
unzip element-plus.zip
mv element-plus-main element-plus
最推荐尝试的顺序:
- 首先尝试直接使用官方源:
bash
mumu@MuJinqiu:~/projects$ git clone https://github.com/element-plus/element-plus.git
- 如果速度慢,尝试浅克隆:
bash
mumu@MuJinqiu:~/projects$ git clone --depth=1 https://github.com/element-plus/element-plus.git
- 使用 SSH 方式(需要先配置SSH密钥):
bash
mumu@MuJinqiu:~/projects$ git clone git@github.com:element-plus/element-plus.git
- 尝试另一个镜像:
bash
mumu@MuJinqiu:~/projects$ git clone https://hub.fastgit.org/element-plus/element-plus.git
如果以上都不行,请告诉我:
-
你所在的地区/网络环境
-
是否在公司/学校网络
-
运行
ping github.com和curl -v https://github.com的结果 -
是否有VPN或代理可用
这样我可以提供更有针对性的解决方案。
本回答由 AI 生成,内容仅供参考,请仔细甄别。
mumu@MuJinqiu:~/projects/element-plus pnpm dev \> @ dev /home/mumu/projects/element-plus \> pnpm -C play dev \> @element-plus/play@ dev /home/mumu/projects/element-plus/play \> vite command not found: vite ELIFECYCLE Command failed with exit code 127. WARN Local package.json exists, but node_modules missing, did you mean to install? ELIFECYCLE Command failed with exit code 127. WARN Local package.json exists, but node_modules missing, did you mean to install? mumu@MuJinqiu:\~/projects/element-plus
看起来依赖没有正确安装。让我们按步骤解决这个问题:
1. 首先检查项目结构
bash
# 回到项目根目录
cd ~/projects/element-plus
# 检查项目文件
ls -la
2. 清理并重新安装依赖
bash
# 删除现有的 node_modules(如果有)
rm -rf node_modules
rm -rf play/node_modules
# 清理 npm/pnpm 缓存
pnpm store prune
# 或者
npm cache clean --force
# 重新安装依赖(从根目录开始)
pnpm install
# 或者如果 pnpm 有问题,使用 npm
npm install
3. 如果上面不行,尝试分步安装
bash
# 1. 确保在项目根目录
cd ~/projects/element-plus
# 2. 安装根目录依赖
pnpm install
# 3. 进入 play 目录安装依赖
cd play
pnpm install
# 或 npm install
# 4. 回到根目录
cd ..
# 5. 安装所有工作区的依赖
pnpm -r install
4. 检查 Node.js 和 pnpm 版本
bash
# 检查 Node.js 版本(Element Plus 需要 Node.js 14+)
node --version
# 检查 pnpm 版本
pnpm --version
# 如果 pnpm 未安装或版本过旧
npm install -g pnpm@latest
# 或者安装特定版本
npm install -g pnpm@7
5. 手动安装 vite(如果依赖安装后仍然缺失)
bash
# 在项目根目录
pnpm add -D vite
# 或者在 play 目录
cd play
pnpm add vite
6. 使用 npm 替代方案
如果 pnpm 持续有问题,可以切换到 npm:
bash
# 删除 pnpm 相关文件
rm -rf node_modules
rm -rf play/node_modules
rm -f pnpm-lock.yaml
# 使用 npm 安装
npm install
# 然后尝试运行
npm run dev
7. 完整解决方案脚本
bash
#!/bin/bash
cd ~/projects/element-plus
echo "1. 清理旧文件..."
rm -rf node_modules
rm -rf play/node_modules
rm -f pnpm-lock.yaml
rm -f package-lock.json
echo "2. 检查 Node.js 版本..."
node --version
echo "3. 更新 pnpm..."
npm install -g pnpm@latest
echo "4. 安装依赖..."
pnpm install
echo "5. 单独安装 play 目录的依赖..."
cd play
pnpm install
cd ..
echo "6. 尝试启动开发服务器..."
pnpm dev
8. 如果还是有问题,检查具体错误
bash
# 查看更详细的错误信息
pnpm dev --verbose
# 或者直接运行 vite 命令
npx vite
# 检查 vite 是否在 node_modules 中
ls node_modules/.bin/ | grep vite
# 尝试手动安装缺失的包
cd play
pnpm add vite @vitejs/plugin-vue vue
9. 备选方案:使用 Docker
如果本地环境问题难以解决:
bash
# 使用 Docker 运行项目
docker run -it --rm \
-v $(pwd):/app \
-w /app \
node:16-alpine \
sh -c "npm install && npm run dev"
10. 常见问题排查
bash
# 1. 检查 package.json 中的脚本
cat package.json | grep -A5 '"scripts"'
cat play/package.json | grep -A5 '"scripts"'
# 2. 检查 node_modules 是否存在
ls -la node_modules | head -20
ls -la play/node_modules | head -20
# 3. 检查 PATH 中是否有 vite
which vite
echo $PATH
# 4. 使用 npx 运行
npx vite dev
建议操作顺序:
- 首先尝试最简单的:
bash
cd ~/projects/element-plus
rm -rf node_modules play/node_modules
pnpm install
pnpm dev
- 如果不行,使用 npm:
bash
cd ~/projects/element-plus
rm -rf node_modules play/node_modules
rm -f pnpm-lock.yaml
npm install
npm run dev
- 如果还是有问题,请提供以下信息:
bash
# 运行这些命令并告诉我输出
node --version
pnpm --version
npm --version
ls -la ~/projects/element-plus/play/
这样我可以更准确地诊断问题所在。
mumu@MuJinqiu:~/projects/element-plus pnpm -C play dev \> @element-plus/play@ dev /home/mumu/projects/element-plus/play \> vite command not found: vite ELIFECYCLE Command failed with exit code 127. mumu@MuJinqiu:\~/projects/element-plus
这个问题表明 vite 没有正确安装。让我们一步步解决:
1. 首先检查 play 目录的依赖状态
bash
# 进入 play 目录
cd ~/projects/element-plus/play
# 检查 package.json 和 node_modules
ls -la
# 查看 package.json 中的依赖
cat package.json | grep -A10 "devDependencies"
2. 安装 play 目录的依赖
bash
# 在 play 目录中安装依赖
cd ~/projects/element-plus/play
pnpm install
# 或者使用 npm
npm install
# 检查是否安装了 vite
ls node_modules/.bin/ | grep vite
3. 如果上面不行,手动安装 vite
bash
# 在 play 目录中手动安装 vite 和相关依赖
cd ~/projects/element-plus/play
pnpm add vite @vitejs/plugin-vue vue typescript @types/node -D
# 或者指定版本(确保与 package.json 兼容)
pnpm add vite@^3.0.0 @vitejs/plugin-vue@^4.0.0 -D
4. 检查全局安装的 vite
bash
# 检查全局是否有 vite
which vite
# 全局安装 vite(临时方案)
npm install -g vite
# 然后再次尝试
pnpm dev
5. 使用 npx 运行
bash
# 使用 npx 直接运行 vite(这会自动下载缺失包)
cd ~/projects/element-plus/play
npx vite dev
# 或者
npx vite
6. 完整重装方案
bash
# 回到项目根目录
cd ~/projects/element-plus
# 1. 删除所有 node_modules 和 lock 文件
rm -rf node_modules
rm -rf packages/*/node_modules
rm -rf play/node_modules
rm -f pnpm-lock.yaml
rm -f package-lock.json
# 2. 使用 npm 代替 pnpm(如果 pnpm 有问题)
npm install
# 3. 安装 play 目录依赖
cd play
npm install
# 4. 回到根目录运行
cd ..
npm run dev
7. 检查 Node.js 环境问题
bash
# 检查 Node.js 版本(Element Plus 需要 Node.js 14+)
node --version
# 如果版本太低,升级 Node.js
# 使用 nvm 管理 Node.js 版本(推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 重启终端后
nvm install 16
nvm use 16
# 或者使用 apt(Ubuntu/Debian)
sudo apt update
sudo apt install nodejs npm
sudo npm install -g n
sudo n stable
8. 特定针对 Element Plus 的解决方案
Element Plus 使用 monorepo 结构,需要特殊处理:
bash
# 方法1:使用项目提供的安装脚本
cd ~/projects/element-plus
# 查看可用的脚本
cat package.json | grep '"scripts"'
# 通常 Element Plus 有 bootstrap 脚本
pnpm bootstrap
# 或者
npm run bootstrap
# 然后运行
pnpm dev
bash
# 方法2:完整的工作区安装
cd ~/projects/element-plus
# 安装所有工作区包
pnpm -r install
# 或者
pnpm install --recursive
9. 快速测试脚本
bash
#!/bin/bash
cd ~/projects/element-plus/play
echo "当前目录:"
pwd
echo "检查 node_modules..."
if [ ! -d "node_modules" ]; then
echo "node_modules 不存在,正在安装..."
npm install
else
echo "node_modules 已存在,检查 vite..."
if [ ! -f "node_modules/.bin/vite" ]; then
echo "vite 未找到,重新安装..."
npm install vite @vitejs/plugin-vue --save-dev
fi
fi
echo "尝试运行 vite..."
npx vite
10. 如果以上都不行,直接修改 package.json 脚本
bash
# 编辑 play/package.json
cd ~/projects/element-plus/play
nano package.json
# 找到 "scripts" 部分,将:
# "dev": "vite"
# 改为:
# "dev": "npx vite"
# 然后运行
npm run dev
最简单的解决方案:
bash
# 1. 确保在项目根目录
cd ~/projects/element-plus
# 2. 删除并重装所有依赖
rm -rf node_modules play/node_modules
npm install
# 3. 单独安装 play 的 vite
cd play
npm install vite @vitejs/plugin-vue --save-dev
# 4. 运行
npx vite
如果还有问题,请告诉我:
-
node --version的输出 -
ls -la ~/projects/element-plus/play/的输出 -
cat ~/projects/element-plus/play/package.json中 "devDependencies" 部分
这样我可以提供更精准的解决方案。
mumu@MuJinqiu:~/projects/element-plus/play ls -la total 48 drwxr-xr-x 6 mumu mumu 4096 Dec 31 14:59 . drwxr-xr-x 16 mumu mumu 4096 Dec 31 15:00 .. -rw-r--r-- 1 mumu mumu 791 Dec 31 14:54 app.example.vue -rw-r--r-- 1 mumu mumu 82 Dec 31 14:54 env.d.ts -rw-r--r-- 1 mumu mumu 435 Dec 31 14:54 index.html -rw-r--r-- 1 mumu mumu 1134 Dec 31 14:54 main.ts drwxr-xr-x 4 mumu mumu 4096 Dec 31 14:59 node_modules -rw-r--r-- 1 mumu mumu 529 Dec 31 14:54 package.json drwxr-xr-x 2 mumu mumu 4096 Dec 31 14:54 scripts drwxr-xr-x 2 mumu mumu 4096 Dec 31 14:54 src drwxr-xr-x 2 mumu mumu 4096 Dec 31 14:54 styles -rw-r--r-- 1 mumu mumu 1955 Dec 31 14:54 vite.config.mts mumu@MuJinqiu:\~/projects/element-plus/play cat package.json | grep -A10 "devDependencies" "devDependencies": { "@vitejs/plugin-vue": "catalog:", "@vitejs/plugin-vue-jsx": "catalog:", "unplugin-vue-components": "0.27.4", "vite": "^5.4.10", "vite-plugin-inspect": "^0.8.7", "vite-plugin-mkcert": "^1.17.6" } } mumu@MuJinqiu:~/projects/element-plus/play$
看到问题了!package.json 中的依赖版本使用了 "catalog:",这通常是工作区(workspace)引用,说明应该从项目根目录安装依赖。让我们来解决:
1. 正确的工作区安装方法
bash
# 回到项目根目录
cd ~/projects/element-plus
# 检查根目录的 package.json
cat package.json | grep -A5 '"workspaces"'
# 安装所有工作区依赖
pnpm install
# 或者使用 workspace 命令
pnpm -r install
2. 使用项目的 bootstrap 脚本
Element Plus 项目通常有 bootstrap 脚本:
bash
# 在根目录运行
pnpm bootstrap
# 或者
npm run bootstrap
# 如果没有 bootstrap,尝试 setup
pnpm setup
# 或者
npm run setup
3. 查看可用的 npm 脚本
bash
cd ~/projects/element-plus
cat package.json | grep -A20 '"scripts"'
# 常见的脚本可能有:
# "dev": "pnpm -C play dev"
# "build": "pnpm -C play build"
# "bootstrap": "pnpm install && pnpm build"
# "setup": "pnpm bootstrap"
4. 如果工作区安装失败,尝试手动安装
bash
# 在 play 目录中,将 "catalog:" 替换为具体版本
cd ~/projects/element-plus/play
# 备份原始 package.json
cp package.json package.json.backup
# 编辑 package.json,将 "catalog:" 替换为具体版本
# 需要查看根目录的 package.json 来确定版本
cd ~/projects/element-plus
cat package.json | grep -A10 '"dependencies"'
cat package.json | grep -A10 '"devDependencies"'
# 或者直接安装最新版本
cd play
pnpm add @vitejs/plugin-vue @vitejs/plugin-vue-jsx vite -D
5. 快速解决方案(修改 package.json)
bash
# 编辑 play 目录的 package.json
cd ~/projects/element-plus/play
nano package.json
# 将 devDependencies 部分修改为:
{
"devDependencies": {
"@vitejs/plugin-vue": "^4.0.0",
"@vitejs/plugin-vue-jsx": "^3.0.0",
"unplugin-vue-components": "0.27.4",
"vite": "^5.0.0",
"vite-plugin-inspect": "^0.8.7",
"vite-plugin-mkcert": "^1.17.6"
}
}
# 保存后安装依赖
pnpm install
# 或者
npm install
# 然后运行
pnpm dev
6. 使用根目录的完整安装
bash
# 在根目录执行完整安装
cd ~/projects/element-plus
# 方法1:使用 pnpm workspace
pnpm -r install
# 方法2:如果上面不行,使用递归安装
pnpm install --recursive
# 方法3:使用 npm workspaces
npm install --workspaces
# 然后尝试运行
pnpm dev
7. 检查 vite 是否在 .bin 目录
bash
cd ~/projects/element-plus/play
ls -la node_modules/.bin/
# 如果 .bin 目录没有 vite,说明安装有问题
# 检查是否有 vite 包
ls node_modules/ | grep vite
8. 使用绝对路径运行 vite
bash
# 直接使用 node_modules 中的 vite
cd ~/projects/element-plus/play
./node_modules/.bin/vite
# 或者
node node_modules/vite/bin/vite.js
9. 完整重置和安装脚本
bash
#!/bin/bash
cd ~/projects/element-plus
echo "1. 清理旧文件..."
rm -rf node_modules
rm -rf packages/*/node_modules
rm -rf play/node_modules
rm -f pnpm-lock.yaml
echo "2. 检查工作区配置..."
if grep -q '"workspaces"' package.json; then
echo "检测到 workspaces,使用 pnpm workspace 安装..."
pnpm -r install
else
echo "未检测到 workspaces,普通安装..."
pnpm install
fi
echo "3. 检查 play 目录依赖..."
cd play
if [ -f "package.json" ]; then
echo "安装 play 目录依赖..."
pnpm install
fi
echo "4. 尝试运行..."
cd ..
pnpm dev
10. 如果还是不行,直接运行开发服务器
bash
# 跳过 pnpm,直接使用 vite
cd ~/projects/element-plus/play
# 临时全局安装 vite
npm install -g vite
# 运行
vite
# 或者使用 npx
npx vite dev --host
最简单有效的方案:
bash
# 1. 确保在项目根目录
cd ~/projects/element-plus
# 2. 运行项目的 bootstrap(如果有)
pnpm bootstrap 2>/dev/null || npm run bootstrap 2>/dev/null || echo "没有bootstrap脚本"
# 3. 如果上面没有,安装所有工作区
pnpm -r install
# 4. 检查并运行
if [ -f "play/package.json" ]; then
cd play
pnpm install
cd ..
fi
# 5. 运行开发服务器
pnpm dev
请先尝试第10条的"最简单有效的方案",然后告诉我结果。如果还有问题,请运行:
bash
cd ~/projects/element-plus
cat package.json | grep -B5 -A5 '"scripts"'
这样我可以看到项目提供的具体脚本。
mumu@MuJinqiu:~/projects/element-plus cat package.json \| grep -A5 '"workspaces"' "workspaces": \[ "packages/\*", "play", "docs" \], "scripts": { mumu@MuJinqiu:\~/projects/element-plus pnpm install Scope: all 17 workspace projects Lockfile is up to date, resolution step is skipped Packages: +1881 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1881, reused 1869, downloaded 0, added 1881, done node_modules/.pnpm/puppeteer@24.33.0_typescript@5.5.4/node_modules/puppeteer: Running postinstall script, failed in 321ms .../node_modules/puppeteer postinstall$ node install.mjs │ **INFO** Skipping Firefox download as instructed. │ Error: ERROR: Failed to set up chrome v143.0.7499.42! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to sk... │ at downloadBrowser (file:///home/mumu/projects/element-plus/node_modules/.pnpm/puppeteer@24.33.0_t... │ at process.processTicksAndRejections (node:internal/process/task_queues:103:5) │ at async Promise.all (index 0) │ at async downloadBrowsers (file:///home/mumu/projects/element-plus/node_modules/.pnpm/puppeteer@24... │ [cause]: Error: read ECONNRESET │ at TLSWrap.onStreamRead (node:internal/stream_base_commons:216:20) { │ errno: -104, │ code: 'ECONNRESET', │ syscall: 'read' │ } │ } └─ Failed in 321ms at /home/mumu/projects/element-plus/node_modules/.pnpm/puppeteer@24.33.0_typescript@5.5.4/node_modules/puppeteer
看到问题了!puppeteer 安装时下载 Chrome 失败了(网络连接问题)。让我们跳过这个步骤:
解决方案 1:设置环境变量跳过 puppeteer 下载
bash
# 设置环境变量跳过 puppeteer 的浏览器下载
export PUPPETEER_SKIP_DOWNLOAD=true
# 重新安装
cd ~/projects/element-plus
pnpm install
# 或者一次性命令
PUPPETEER_SKIP_DOWNLOAD=true pnpm install
解决方案 2:清理缓存并重试
bash
# 清理 pnpm 缓存
pnpm store prune
# 设置环境变量并安装
cd ~/projects/element-plus
PUPPETEER_SKIP_DOWNLOAD=true pnpm install --force
解决方案 3:使用 npm 代替 pnpm
bash
# 删除 pnpm 相关文件
cd ~/projects/element-plus
rm -rf node_modules
rm -rf packages/*/node_modules
rm -rf play/node_modules
rm -rf docs/node_modules
rm -f pnpm-lock.yaml
# 使用 npm 安装(会自动设置跳过 puppeteer 下载)
npm install --legacy-peer-deps
解决方案 4:配置 npm/pnpm 永久跳过 puppeteer 下载
bash
# 添加到 shell 配置文件(如 ~/.bashrc 或 ~/.zshrc)
echo 'export PUPPETEER_SKIP_DOWNLOAD=true' >> ~/.bashrc
echo 'export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true' >> ~/.bashrc
source ~/.bashrc
# 然后重新安装
cd ~/projects/element-plus
pnpm install
解决方案 5:手动修复 puppeteer 问题后安装
bash
# 先单独安装 puppeteer(跳过下载)
cd ~/projects/element-plus
PUPPETEER_SKIP_DOWNLOAD=true pnpm add puppeteer -D -w
# 然后安装其他依赖
pnpm install
解决方案 6:最小化安装(只安装必要依赖)
bash
# 只安装 play 目录的依赖
cd ~/projects/element-plus/play
# 创建临时的 package.json(备份原文件)
cp package.json package.json.backup
# 移除 puppeteer 相关依赖(如果有的话)
# 编辑 package.json,将 devDependencies 修改为:
cat > package.json << 'EOF'
{
"name": "@element-plus/play",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc && vite build",
"preview": "vite preview"
},
"dependencies": {
"element-plus": "workspace:*",
"vue": "^3.3.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.0.0",
"@vitejs/plugin-vue-jsx": "^3.0.0",
"unplugin-vue-components": "0.27.4",
"vite": "^5.0.0",
"vite-plugin-inspect": "^0.8.7",
"vite-plugin-mkcert": "^1.17.6",
"vue-tsc": "^1.8.0"
}
}
EOF
# 安装依赖
pnpm install
# 运行开发服务器
pnpm dev
推荐的操作步骤:
步骤 1:跳过 puppeteer 下载
bash
cd ~/projects/element-plus
PUPPETEER_SKIP_DOWNLOAD=true pnpm install
# 等待安装完成,然后尝试运行
pnpm dev
步骤 2:如果上面不行,使用 npm
bash
cd ~/projects/element-plus
rm -rf node_modules
rm -f pnpm-lock.yaml
npm install --legacy-peer-deps
# 进入 play 目录安装
cd play
npm install
# 运行
npm run dev
步骤 3:最小化运行(最快)
bash
# 直接在 play 目录中工作
cd ~/projects/element-plus/play
# 检查并修复依赖
if [ ! -d "node_modules" ]; then
# 临时修改 package.json 避免 puppeteer 问题
sed -i 's/"catalog:"/"^4.0.0"/g' package.json
sed -i 's/"catalog:"/"^3.0.0"/g' package.json
# 安装
npm install
fi
# 运行
npx vite
验证安装是否成功
bash
# 检查 vite 是否可用
cd ~/projects/element-plus/play
ls node_modules/.bin/vite
# 直接运行
./node_modules/.bin/vite
# 或者
npx vite --version
如果还是有问题,创建简化的启动脚本
bash
cat > ~/projects/element-plus/start-dev.sh << 'EOF'
#!/bin/bash
cd "$(dirname "$0")"
# 设置环境变量
export PUPPETEER_SKIP_DOWNLOAD=true
# 检查依赖
if [ ! -d "node_modules" ] || [ ! -d "play/node_modules" ]; then
echo "安装依赖..."
pnpm install || npm install
fi
# 启动开发服务器
cd play
if [ -f "node_modules/.bin/vite" ]; then
./node_modules/.bin/vite
else
npx vite
fi
EOF
chmod +x ~/projects/element-plus/start-dev.sh
cd ~/projects/element-plus
./start-dev.sh
最简单的解决方案(推荐先试这个):
bash
# 1. 设置环境变量并安装
cd ~/projects/element-plus
PUPPETEER_SKIP_DOWNLOAD=true pnpm install
# 2. 如果上面有错误,但大部分包安装成功了,直接尝试运行
pnpm dev
# 3. 如果还是说 vite 找不到,直接在 play 目录运行
cd play
npx vite
请先尝试这个最简单的解决方案,通常 puppeteer 只是用于测试,不会影响开发服务器的运行。
mumu@MuJinqiu:~/projects/element-plus$ pnpm -C play dev > @element-plus/play@ dev /home/mumu/projects/element-plus/play > vite VITE v5.4.21 ready in 545 ms ➜ Local: http://localhost:3000/ ➜ Network: http://10.255.255.254:3000/ ➜ Network: http://172.18.230.242:3000/ ➜ Inspect: http://localhost:3000/__inspect/ ➜ press h + enter to show help
Vite 开发服务器已经成功启动了!🎉
成功运行的迹象
-
Vite 版本: v5.4.21
-
本地服务器 : http://localhost:3000/
-
网络地址: 有两个网络地址可以访问
-
就绪时间: 545 毫秒
现在你可以:
1. 在浏览器中打开项目
bash
# 在 Linux 上使用默认浏览器打开
xdg-open http://localhost:3000/
# 或者在终端中直接复制 URL 到浏览器
echo "请打开浏览器访问: http://localhost:3000/"
2. 查看 Element Plus Playground
打开浏览器访问 http://localhost:3000/,你应该能看到:
-
Element Plus 组件库的演示页面
-
可以交互的组件示例
-
开发环境的热重载功能
3. VS Code 中的操作
在 VS Code 中打开项目:
bash
# 如果还没在 VS Code 中打开
code ~/projects/element-plus
常用开发命令:
bash
# 在 VS Code 终端中,你可以:
# 1. 停止当前服务器(在运行 vite 的终端中)
Ctrl + C
# 2. 重新启动
pnpm dev
# 3. 构建生产版本
pnpm build
# 4. 预览构建结果
pnpm preview
4. 项目结构说明
现在你已经有了一个完整的 Element Plus 开发环境:
-
packages/: Element Plus 的源代码包 -
play/: 开发演示和 playground -
docs/: 文档(如果存在)
5. 开发工作流程
修改代码:
-
在 VS Code 中打开文件
-
修改代码后保存
-
浏览器会自动刷新(热重载)
创建新组件:
bash
# 在 packages/components 中创建新组件
# 然后在 play 中测试
6. 有用的开发命令
bash
# 在项目根目录可以运行:
# 运行所有测试
pnpm test
# 只运行特定包的测试
pnpm test:unit
# 检查 TypeScript 类型
pnpm type-check
# 代码格式化
pnpm lint
pnpm format
# 构建所有包
pnpm build
7. 访问开发工具
-
本地地址 : http://localhost:3000/
-
检查工具 : http://localhost:3000/__inspect/ (Vite 插件提供的组件检查)
-
网络地址: 可以在同一网络的其他设备上访问
8. 停止和重启
bash
# 停止开发服务器(在当前终端)
按 Ctrl + C
# 重启
pnpm dev
# 或者直接运行 vite
cd play
vite
9. 常见开发任务
添加新依赖:
bash
# 添加到根项目
pnpm add package-name -w
# 添加到特定工作区(如 play)
pnpm add package-name --filter @element-plus/play
调试:
bash
# 启用更详细的日志
pnpm dev --debug
# 或直接
vite --debug
恭喜!🎊
你已经成功:
-
✅ 克隆了 Element Plus 项目
-
✅ 解决了依赖安装问题
-
✅ 启动了开发服务器
-
✅ 建立了一个完整的开发环境
现在你可以:
-
在浏览器中查看和测试 Element Plus 组件
-
修改源代码并立即看到变化
-
学习 Element Plus 的内部实现
-
贡献代码或创建自己的组件
进入项目目录
bash
cd element-plus
(可选)安装依赖并启动开发环境
如果你希望运行官方文档或 Playground:
bash
# 安装依赖(使用 pnpm,Element Plus 官方推荐)
npm install -g pnpm # 如果尚未安装 pnpm
pnpm install
# 启动文档站点(含组件 demo)
pnpm docs:dev
注意:Element Plus 使用 pnpm 作为包管理器,不是 npm 或 yarn。
✅ 验证成功
- 成功克隆后,VSCode 左侧文件资源管理器应显示
element-plus文件夹。 - 终端中无报错,且
git clone完成后出现新目录。 - 若启动了文档,浏览器打开
http://localhost:5555应看到 Element Plus 官网本地版。
💡 小贴士
-
如果你只是想 使用 Element Plus(而非参与开发),通常不需要克隆源码,而是通过 npm 安装:
Bashbashpnpm add element-plus -
克隆源码主要用于:贡献代码、调试组件、查看内部实现等。
如有网络问题(如 GitHub 访问慢),可尝试使用镜像或代理,或改用国内镜像源(如 GitHub Fastly IP 修改 hosts 等方法)。