ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VS Code 在 Mac 上的前端与 Java 开发环境搭建和避坑指南

VS Code 在 Mac 上的前端与 Java 开发环境搭建和避坑指南 简介Mac 版 Visual Studio Code 编辑器完整资源包zip 压缩交付面向使用 Vue、HTML、Java 及移动端开发的前端工程师也适合偏好轻量编辑、追求编码效率的全栈开发者。整包共 2000 个文件、约 155.78MB文件类型丰富2171 个 js、1598 个 json、852 个 ts、311 个 md、210 个 h、91 个 css、79 个 svg、33 个 png 等js/ts 支撑扩展逻辑与类型定义json 负责配置与依赖声明css/svg 呈现编辑器工作台主题与图标md/txt 附带说明文档整体结构完整解压即可投入使用。它出自微软官方为典型的轻量级编辑器启动速度快、资源占用低原生集成 Git 与智能感知支持高度插件化配置尤其对 TypeScript 做了深度优化既能替代基础文本工具也能胜任前端工程与多语言日常开发。目前已有 615 人学习下载适合需要跨平台一致体验、偏好可定制工作界面的中高级开发者收藏备用。1. 为什么 Mac 前端/后端都绕不开 Visual Studio Code新到一台 Mac装完输入法之后大多数人第一件事是装编辑器。Visual Studio Code 在 mac 生态里几乎成了默认答案前端写 html、vue 是它后端写 java 是它移动端调试 H5 还是它。先澄清一个最常见的混淆VS Code 和 Visual Studio 是两回事Visual Studio 是 Windows 上的重量级 IDEmac 上你要找的是 Visual Studio Code 这个跨平台轻量编辑器。它能在一个窗口里完成编码、调试、Git 操作和终端集成插件体系覆盖前端到后端几乎所有主流语言。下面按我平时搭环境的顺序写装哪里、怎么配、写 Vue 和 Java 时装什么、移动端怎么联调最后是我踩过并且确定有解的坑。适合刚转 mac 的前端、在 Mac 上补 Java 工具链的后端以及用 H5 做混合开发的人。2. 安装与首启配置从官网到 Homebrew 的两种装法mac 上装 VS Code 就两条路官网下载安装包拖进 Applications或者用 Homebrew 一条命令装。两条我都长期用过结论是先看你是否依赖 brew。如果平时已经用 brew 管理 node、git、maven 这些工具链直接 cask 安装最省事后续升级一条命令如果不怎么碰终端官网下载就行别给自己增加学习成本。2.1 官网下载与 Apple Silicon 的架构选择进入官网下载页mac 区的下载按钮默认给的是 Universal 版本同时支持 Apple Silicon 和 Intel体积比单架构版本大一些。这个 Universal 包在 M 系列上跑起来没问题不需要刻意去找单独的 arm64 包它已经包含在同一个包里了。下载之前先确认机器架构这不是多此一举。M 系列和 Intel 的 Mac 在系统层面就有差异后续装 JDK、Node、Android 工具链时都需要对应架构的版本。确认方法有两种# 输出 arm64 表示 Apple Siliconx86_64 表示 Intel uname -m输出arm64就是 Apple Silicon输出x86_64就是 Intel。这个结果建议记一下后面配 Java 和移动端环境时经常要用。另一个方法是在“关于本机”看芯片型号M 系列会直接写“Apple M1/M2/M3”。下载完把 dmg 里的 Visual Studio Code.app 拖进 Applications 就算装完。首次打开如果提示“已损坏无法打开”去“系统设置→隐私与安全性”里点“仍要打开”这是 macOS 对非 App Store 应用的常规拦截不是安装包本身有问题。这个提示来自 macOS 对下载应用的隔离属性VS Code 官方包一般不会遇到但遇到时知道处理路径会省很多时间。2.2 用 Homebrew 安装一条命令与权限坑已经装了 Homebrew 的机器安装命令只有一行# --cask 表示安装图形应用GUI 应用 brew install --cask visual-studio-code--cask是 Homebrew 里安装图形应用的标志VS Code 属于 GUI 应用必须带这个参数。如果不带brew 会去找一个同名的命令行工具并告诉你找不到报错信息会误导你去怀疑仓库源。装完以后应用在/Applications/Visual Studio Code.appSpotlight 搜“Visual Studio Code”就能启动。后续更新用brew upgrade --cask visual-studio-code这条命令只更新 VS Code 本体不会动你的配置和插件。很多人担心升级后插件会消失实际不会扩展装在用户目录~/.vscode/extensions下和 App 本体是分离的。macOS 对/Applications路径下的应用有只读保护但 VS Code 的配置目录在用户目录里升级覆盖不影响。Homebrew 在 mac 上最常见的翻车点是权限。如果你遇到# 递归修复 /opt/homebrew 目录所属权whoami 取当前用户名 sudo chown -R $(whoami) /opt/homebrew说明 Homebrew 目录的所属权出了问题通常是你当初安装时用了 sudo或者迁移过系统。-R递归处理目录下所有文件执行完跑一下brew doctor确认没有其他警告再继续。注意这个路径只适用于 Apple SiliconIntel Mac 的 Homebrew 路径是/usr/local命令里的路径要对应改。2.3 首启必做的五件事装完先别急着写代码花两分钟做五件事后面能省很多事。第一装code命令。VS Code 里按CmdShiftP输入Shell Command选择 “Install code command in PATH”。这样终端里code .就能在编辑器里打开当前目录。不装也行但每次都得用鼠标拖文件夹写久了很烦。第二改 settings.json。按Cmd,打开设置右上角切换到 JSON 视图把下面内容合并进去{ // 保存时自动格式化配 ESLint/Prettier 时必须开启 editor.formatOnSave: true, // 延迟自动保存单位毫秒 files.autoSave: afterDelay, files.autoSaveDelay: 1000, // 关闭欢迎页避免每次打开都停在欢迎页 workbench.startupEditor: none }editor.formatOnSave控制保存时自动格式化后面配 ESLint 和 Prettier 时很关键files.autoSave配合autoSaveDelay实现延迟自动保存写 Vue 模板时能少按几次CmdSworkbench.startupEditor设成none减少每次打开时的无效动作。第三把依赖目录从文件树里藏掉。在 settings.json 里加{ // 文件树隐藏依赖与构建目录减少卡顿和误操作 files.exclude: { **/node_modules: true, **/dist: true } }这样文件树不会因为依赖目录而卡顿。两个目录在 Git 提交时本来就会被 .gitignore 排除藏起来不影响任何操作。第四确认集成终端的 shell 初始化。VS Code 集成终端默认继承系统 shell但如果你用了 nvm 或 pyenv集成终端有时读不到初始化脚本。避坑章会专门展开这里先记住终端里能跑通的命令集成终端里大概率也能跑通跑不通的先重载窗口CmdShiftP→ “Developer: Reload Window”再试。第五开启设置同步。命令面板输入 “Turn on Settings Sync”用 GitHub 或微软账号登录VS Code 会同步设置、快捷键和插件列表。这是 mac 上换机、重装系统之后最快恢复环境的方案第 6 章再展开。至于“官网下载还是 Homebrew”怎么选我一般这样判断方式适合场景升级方式常见问题官网 dmg不常用终端应用内点击更新每次要手动下载Homebrew cask已用 brew 管理工具链brew upgrade 一条命令权限 / 镜像源两种方式装的 VS Code 本质是同一个应用配置和插件完全通用不存在用 brew 装的比官网装的差这种说法。3. 配出一个能写 Vue/HTML 的前端环境插件、格式化与 dev server前端在 mac 上用 VS Code 的体验基本由插件决定。下面这套组合我从 Vue 2 用到 Vue 3从纯 HTML 页面用到移动端 H5踩过不少坑现在固定下来比较稳。3.1 选 Volar 还是 VeturVue 插件分叉怎么选Vue 的插件生态有个历史分叉Vetur 是 Vue 2 时代的官方插件支持模板高亮、格式化、错误检查Vue 3 之后官方把重心转到 Vue - Official也就是大家常说的 Volar模板的类型推断、自动导入、TS 支持都只在 Volar 里做。新项目直接装 Vue - Official老项目还在用 Vue 2 的话装 Vetur。关键在于不要两个同时装。Vetur 和 Volar 都会去接管.vue文件同时启用时模板的类型推断会互相污染最常见的表现是ref变量在模板里报“Property does not exist”但编译运行又是好的。这种错误是语言服务器的误报不是代码真的有问题。插件装好以后注意右下角状态栏Vue - Official 会有一个版本切换提示。Vue 3 项目选 “Vue 3”Vue 2 项目选 “Vue 2”选错会导致模板语法报错。我在 mac 上遇到过几次项目能跑但编辑器一片红最后都是这里选错了。3.2 ESLint Prettier 格式化体系前端格式化这件事mac 上的 VS Code 里最稳的组合是Prettier 负责格式化ESLint 负责静态检查两者各管一摊避免“格式化插件和 lint 规则打架”。装好 Prettier 和 ESLint 插件后在 settings.json 里加{ // 默认格式化器固定为 Prettier editor.defaultFormatter: esbenp.prettier-vscode, // ESLint 额外检查 vue 与 html 文件里的内联脚本 eslint.validate: [javascript, javascriptreact, vue, html], prettier.singleQuote: true, prettier.semi: false, prettier.trailingComma: es5, prettier.printWidth: 100 }editor.defaultFormatter把 Prettier 设为默认格式化器这样按CmdShiftP→ “Format Document” 时不会再弹窗问你要用哪个eslint.validate数组里加了vue和htmlESLint 才会去检查单文件组件和 html 里的内联脚本后续几条 prettier 配置是风格偏好singleQuote用单引号、semi关掉分号、trailingComma保留 es5 风格、printWidth一行 100 字符换行。这套配置保存后生效按CmdSPrettier 会重排代码ESLint 的错误显示在“问题”面板。如果保存后代码没动静大概率是默认格式化器没设置成 Prettier避坑章再讲。对于不依赖框架的纯 HTML 页面我习惯再用一个 Live Server 插件右键 HTML 文件选 “Open with Live Server”会在本地起一个静态服务并支持热刷新。mac 上做移动端 H5 原型时这个插件比手动开python -m http.server方便很多改完 CSS 浏览器自动刷新不用手动清缓存。3.3 跑起 vite dev server 并开启局域网访问Vue 项目现在基本都走 Vite。在 mac 的 VS Code 集成终端里创建项目# 创建 Vue 项目--template 指定模板-- 分隔符防止参数被 npm 截获 npm create vitelatest my-vue-app -- --template vue cd my-vue-app npm install # 启动开发服务器默认端口 5173 npm run devnpm create vitelatest会拉取 create-vite 的最新版--template vue指定 Vue 模板--用来把后面的参数透传给 create-vite不加这个分隔符npm 会把--template当成自己的参数吃掉。npm run dev默认监听 5173 端口终端里会打印出 localhost 地址。纯前端开发时localhost完全够用。但如果你在写移动端 H5需要手机真机预览默认配置就不够了因为 vite 只监听了回环地址。改成# --host 0.0.0.0 让 dev server 监听所有网卡手机可通过局域网 IP 访问 npm run dev -- --host 0.0.0.0--host 0.0.0.0让 dev server 监听所有网卡。手机和 Mac 连同一个 Wi-Fi在“系统设置→网络”里查看 Mac 的局域网 IP手机上访问http://192.168.x.x:5173就能打开页面。注意 Mac 自带防火墙若开启第一次访问会被拦截点允许即可。这里有个小坑如果 Wi-Fi 开了 AP 隔离手机和电脑之间互相 ping 不通局域网预览就会失败。这不是 VS Code 的问题换成 USB 调试通道就能绕开方法在第 4 章的 adb reverse 里讲。4. Java 与移动端开发让 VS Code 顶住半套 IDE 的活很多人在 mac 上写 Java 第一反应是装 IDEA但偶尔改个小服务、看个源码、调一个单元测试VS Code 配好了比 IDE 轻很多。这一章把 Java 环境、Maven、以及移动端 H5 联调串起来。4.1 Java 扩展包与 JDK 版本选择Java 场景先装 Extension Pack for Java它是一组扩展的合集包含语言服务器、调试器、测试运行器、Maven 支持。装完以后.java文件会有语法高亮、跳转定义、自动补全和“Run”按钮日常开发够用。JDK 版本选择是 mac 上的常见困惑。老项目依赖 JDK 8新项目用 JDK 17 甚至 21。VS Code 支持配置多个 JDK先看系统里已经有什么# -V 大写列出系统所有 JDK 的版本与路径 /usr/libexec/java_home -V # 查看当前 shell 默认 Java 版本 java -version/usr/libexec/java_home -V是 macOS 自带的管理命令列出所有已安装 JDKjava -version看当前默认版本。如果报 command not found说明还没配 JAVA_HOME先装 JDK比如老项目常用的 JDK 8。Apple Silicon 机器优先下载 arm64 的 dmg装完再跑一次java_home -V就能看到。然后在 VS Code 的 settings.json 里配置多个运行环境{ // 为 Java 语言服务器配置多个 JDK 运行环境 java.configuration.runtimes: [ { name: JavaSE-1.8, // path 必须写到 Contents/Home只写 JDK 根目录会找不到 path: /Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk/Contents/Home, default: true }, { name: JavaSE-17, path: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home } ] }java.configuration.runtimes告诉语言服务器有哪些 JDK 可用default标记默认运行时path必须写到Contents/Home。mac 的 JDK 安装路径一般在/Library/Java/JavaVirtualMachines/用上面的java_home -V输出核对路径别凭记忆写。4.2 Maven 环境mvn -v 与 Maven for JavaJava 项目绕不开 Maven。mac 上配置 Maven 分两步安装和配仓库。先安装# brew 安装 Maven同时会拉取依赖的 JDK brew install maven # 验证版本并打印 Java 运行时信息 mvn -vmvn -v输出的 Java 版本和项目要求不一致时去 4.1 的配置里调整默认 JDK因为 Maven 用的是JAVA_HOME环境变量可以再跑echo $JAVA_HOME确认当前指向。依赖下载慢是 mac 上跑 Java 项目最常见的网络问题做法是配置用户级 settings 覆盖中央仓库!-- 用户级 Maven 配置对所有项目生效 -- settings !-- 本地仓库路径按实际用户名修改 -- localRepository/Users/你的用户名/.m2/repository/localRepository mirrors mirror idaliyun/id namealiyun public/name !-- 公共仓库镜像加速依赖下载 -- urlhttps://maven.aliyun.com/repository/public/url mirrorOfcentral/mirrorOf /mirror /mirrors /settings路径放在~/.m2/settings.xmllocalRepository是本地仓库位置mirrorOf值为central表示只镜像中央仓库其它仓库照常访问。如果公司内部有私有仓库把 mirrorOf 改成*,!私服id让私服地址直连。VS Code 里装 Maven for Java 插件后侧边栏会列出项目的 modules 和依赖树执行mvn clean package可以直接右键跑不用切终端。打包输出里的BUILD SUCCESS或BUILD FAILURE会高亮失败原因也能定位到具体文件。4.3 Android 调试adb 与移动端 H5 联调移动端 H5 开发是 VS Code 在 mac 上的另一个高频场景。调试手机上的页面核心工具是 adb。mac 上装 adb 环境常见做法是用 Homebrew 安装 Android 官方平台工具# 安装 Android 官方平台工具包含 adb brew install --cask android-platform-tools # 列出已连接的 Android 设备 adb devices手机要提前开启“开发者选项→USB 调试”插上数据线后手机弹窗点允许。如果adb devices里设备状态是unauthorized说明没授权重新拔插一次再点允许。前面 3.3 里讲到局域网预览会被 AP 隔离挡住这时候用 adb reverse 绕开网络# 把手机的 localhost:5173 请求转发到电脑的 5173 端口走 USB 通道 adb reverse tcp:5173 tcp:5173执行完手机浏览器打开http://localhost:5173走的是 USB 通道不依赖同一 Wi-Fi延迟更低、不受防火墙影响。这个技巧在做混合应用调试时特别好用App 内嵌的 WebView 直接访问 localhost 就能连上电脑的 dev server省掉来回打包上传的流程。adb 相关的另一类是日志。VS Code 装 Android Logcat 插件后命令面板输入 “Android: Start Logcat” 就能实时看手机日志H5 页面里的console.log在 Android WebView 里会打进 logcat可以配合adb logcat | grep chromium过滤。5. 避坑Mac 版 VS Code 最常见的五个翻车现场配置是一回事真正让你觉得“玄学”的是运行时的各种翻车。下面五条我都在 mac 上真实遇到过每条都给了确认有效的处理路径。5.1 装了 code 命令却提示 command not found现象在 VS Code 里执行了 “Install code command in PATH”重开终端输入code .仍然报zsh: command not found: code。原因VS Code 的安装脚本会把命令软链写进~/.zshrc但有两种情况会失效一是你用的 shell 不是 zsh二是~/.zshrc里 PATH 被后面的配置覆盖。解决先确认当前 shell终端执行echo $SHELL。如果是 bash把 code 加进~/.bash_profile如果是 zsh检查~/.zshrc末尾是否有下面的行# 手动把 code 命令加入 PATH并重新加载 shell 配置 export PATH$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin source ~/.zshrc这个路径是 VS Code.app 里 code 可执行文件的实际位置软链只是指向它。5.2 Homebrew 安装失败权限与源的问题现象brew install --cask visual-studio-code报错常见两类一类是/opt/homebrew is not writable另一类是更新阶段报fatal: unable to access拉取失败。原因前者是目录所属权问题后者是 brew 的 git 远程仓库在当前网络下访问不稳定。解决权限问题先sudo chown -R $(whoami) /opt/homebrew再brew doctor。拉取失败的问题先确认不是临时网络抖动brew update多跑两次经常失败的话把 Homebrew 的远端仓库切到你所在网络访问更快的镜像站换完跑brew doctor确认仓库地址正确。这类问题跟 VS Code 本身无关但不解决cask 安装永远卡在更新阶段。5.3 保存时格式化没生效现象settings.json 里editor.formatOnSave已经设为 truePrettier 插件也装了按CmdS代码却原封不动。原因editor.formatOnSave只负责“保存时触发格式化”格式化器由editor.defaultFormatter决定。如果没有显式指定默认格式化器VS Code 在有多个格式化器时不会自动选 Prettier。另一种情况是当前文件类型不在格式化器支持范围内。解决手动触发一次格式化CmdShiftP→ “Format Document”弹出选择框时选 Prettier。然后回到 settings.json把editor.defaultFormatter固定成esbenp.prettier-vscode并确认文件扩展名是.js、.vue、.html这些 Prettier 认识的语言。.vue文件还要确认没有 Vetur 抢格式化权Vetur 自带格式化能力两个一起会打架。5.4 Vetur 与 Volar 共存导致 Vue 模板报错现象项目能正常编译运行但 VS Code 的“问题”面板里Vue 模板上的ref、props一片红提示Property xxx does not exist on type。原因Vetur 和 Vue - OfficialVolar同时启用两个语言服务器都声称自己能处理.vue文件类型信息互相覆盖。这是语言服务器的误报不是业务代码 bug但会让人怀疑人生。解决只保留一个。Vue 3 项目禁用 VeturVue 2 项目禁用 Volar在扩展面板点 Disable 即可。如果项目里 Vue 版本和插件选择不匹配还要检查 Volar 右下角的版本开关Vue 3 选 “Vue 3”Vue 2 选 “Vue 2”。改完重载窗口红色波浪线会立刻消失。5.5 终端 node 版本和集成终端不一致现象mac 外部终端里node -v输出 v18VS Code 集成终端里执行同样命令却是 v14或者直接node: command not found。原因如果使用 nvm 管理 node 版本nvm 的初始化脚本写在~/.zshrc里VS Code 集成终端加载的 shell 环境与外部终端不一致导致 nvm 没生效或加载了不同默认版本。解决最直接的是在集成终端里执行source ~/.zshrc或重载窗口。如果重载后还是不对检查 settings.json 里有没有设置terminal.integrated.env.osx这类覆盖终端环境变量的配置。还有一种更省心的思路mac 上不用 nvm直接用 Homebrew 的 node让 node 版本全局统一。6. 把 VS Code 调成你的手感同步、合并与一键验证环境搭好只是起点真正提升效率的是把日常动作固化下来。6.1 Settings Sync 与登录恢复Settings Sync 打开后VS Code 会把配置、快捷键、插件列表同步到账号。换 Mac 或者重装系统后新装 VS Code 登录账号选择一键下载云端设置几分钟就能恢复到原来八九成的状态剩下缺的是那些需要单独授权的工具链比如 JDK 和 adb这些没法同步得重新装一遍。6.2 Git 合并与一键验证mac 版 VS Code 的合并冲突视图是我最喜欢的功能之一。执行# 合并 feature/login 分支冲突文件会用可视化视图打开 git merge feature/login有冲突时VS Code 会把冲突文件打开用 “Accept Current Change” 或 “Accept Incoming Change” 逐个处理比在终端里手动删标记直观得多。合并完跑一次构建验证{ version: 2.0.0, tasks: [ { label: lint, type: npm, // 对应 package.json 里的 scripts.lint script: lint, problemMatcher: [$eslint-stylish] }, { label: build, type: npm, // 指向 scripts.build归入 build 组后 CmdShiftB 可直接触发 script: build, group: build } ] }tasks.json 放在项目根目录.vscode/tasks.jsontype: npm直接读取 package.json 里的 scriptsgroup: build让CmdShiftB一键触发。这是我验证前端项目最常按的组合。从那以后我每次拿到新 Mac都强制走一遍装 VS Code → 登录同步 →code .打开项目 → 跑一次 lint → 合并一次分支。这套流程看着普通但确实帮我躲过了好几次环境不一致的坑。希望帮到你。本文还有配套的精品资源点击获取
返回列表