假如同事用的都是mac,而只有你是windows,你该如何应对

入职当天,发在我手上的竟然是ThinkPad,这让我满头雾水,后来告知我试用期过了且定到L3才会给我发mac,那就等待吧。但这其中我遇到了个比较关键的问题,想和大家分享下。

或许你已经在想,除了一些操作上的差异外,还能有什么影响呢?其实唯二的大头问题在你刚进入公司就要到来,那就是跑项目。由于系统差异问题,大伙用的都是mac,就默认在一些配置环境中配置的是ios系统的指令,而你手里的安卓本是看不懂的。

核心问题

例如 mac 用户的 package.json 脚本、Shell 脚本、或开发配置中,经常包含以下命令:

js 复制代码
rm -rf node_modules/
ls -al
cp .env.example .env
pwd
sh build.sh

这些命令其实在 Windows CMD 或 PowerShell 中是无法识别的,执行时会直接报错。看到这里 mac 用户可能会冒出一句:"啊,真的假的?" 没错,确确实实是真的。Windows 和类 Unix 系统(macOS、Linux)在命令行工具、路径处理和权限机制上有本质区别。

那么有什么处理方法呢?直接更改 package.json 文件来适配 windows 怎么样,那在 code review 完你可能会收到一句:你明天可以接着放暑假了。

那么我们该如何解决呢?首先当然不是更改文件,不然 push 完你的同事就该懵逼了。这时我们就该拿出我们的虚拟机了,给自己打造一个 mac 开发环境,没有我们就自己造!

如何把自己的 windows 变成 mac

1、安装WSL2

打开 PowerShell(以管理员身份),执行:

js 复制代码
wsl --install

Windows 10 用户需先更新 WSL 组件,可参考官方文档:learn.microsoft.com/zh-cn/windo...

如果发现安装后还是无法使用,可以试试万能的重启电脑。

2、安装 Ubuntu 发行版

从 Microsoft Store 安装 Linux 发行版。选择 Ubuntu 20.04 或更新版本,并完成安装初始化。(设置用户名和密码)

3、将项目代码移入 Linux 子系统中

代码放在 WSL 子系统路径中运行,能避免很多路径映射问题,并且可以提高性能。

打开 WSL 终端,进入你的 Linux 系统,执行:

js 复制代码
cd ~
mkdir workspace

然后在 Windows 文件资源管理器中,把你的项目文件复制到:

js 复制代码
\\wsl.localhost\Ubuntu\home\你的用户名\workspace

这个过程可能会有点慢,可以试着先忽略像node_modules这样的文件,然后当复制到后再 install。

4、使用 VSCode 连接 WSL 开发

vscode 也针对这种情况出过相关策略,可以安装 Remote - WSL 插件,然后在 VSCode 中按下 F1,输入:

js 复制代码
Remote-WSL: Open Folder in WSL

选择你刚刚放进去的项目目录即可。此时你将在 VSCode 中享受到原生 Linux 的开发体验。

5、Docker 使用注意:连接 WSL 后端

如果你的项目使用 Docker 开发,在安装 Docker Desktop 后:

  • 打开 Docker 设置
  • 前往「Resources」>「WSL Integration」
  • 启用对 Ubuntu 子系统的集成

这样你就可以在 WSL 中直接运行 docker-compose up,像在 mac 上一样使用容器开发环境。

总结

完成上述配置后,你的 Windows 机就能跑任何 macOS 项目中的命令脚本,运行逻辑与同事完全一致,团队协作也将畅通无阻。

相关推荐
星语卿24 分钟前
Vuetify:构建优雅Vue应用的Material Design组件库
前端·javascript·vue.js
M-finder32 分钟前
Mac菜单栏综合工具FancyTool更新啦
mac·swift
roman_日积跬步-终至千里1 小时前
【系统架构设计(25)】Web应用服务器与现代架构
前端·架构·系统架构
yshhuang1 小时前
在Windows上搭建开发环境
前端·后端
littleplayer1 小时前
Redux在iOS中的使用
前端
跟橙姐学代码1 小时前
Python里的“管家婆”:带你玩转os库的所有神操作
前端·python·ipython
jingling5551 小时前
uniapp | 快速上手ThorUI组件
前端·笔记·前端框架·uni-app
UrbanJazzerati1 小时前
可拖拽的进度条组件实战:实现思路与Demo
前端·面试
Cache技术分享1 小时前
188. Java 异常 - Java 异常处理规范
前端·后端