Windows 怎么开发配置环境来着, WSL 好像没啥用啊

2022-01-25 10:31:00 +08:00
 pupboss
机缘巧合周末搞了台 Windows 台式机,体验了一波发现响应速度都超级快,不管是浏览器还是办公套件,于是萌生了用 Windows 做开发机的念头

但是我现在没搞明白 WSL 存在的意义,我举一个场景比如 nodejs 开发

宿主机的 sublime 或者 vscode 或者 Git GUI 如果想正常使用,得在宿主机装一套 sshd nodejs eslint 这类工具,好像就没 WSL 什么事了

如果说有的程序需要 Linux 环境,ok 我用 vscode remote wsl 插件连接到 WSL ,使用 WSL 里面的开发环境,但是 WSL 挂载 git 的时候,文件权限全部 777 ,也是很影响使用

文件权限问题,实在不行我把代码放在 WSL 内部,也能忍,但是和宿主机文件传输好 jb 慢啊,5 分钟传不完 200M 的碎文件

传输慢也就还能忍,大不了全部放在 WSL 里面,但是我的工作区是用 syncthing 同步的,WSL 安装完发现 systemctl 不能用

systemctl 不能用我也认了,大不了每次手动启动 syncthing ,但是启动完发现 WSL 的端口只能在 localhost 访问,而 NAS 连不上,或者说需要额外配置才能连上

可如果我在宿主机同步 syncthing ,就又会遇到 git 文件权限 777 问题,完美循环了

所以想请教下各位,Windows 下舒服的开发姿势是什么样的,WSL 一把梭,还是宿主机一把梭,还是有什么奇巧淫技
8270 次点击
所在节点    程序员
77 条回复
pupboss
2022-01-25 11:31:09 +08:00
@bthulu
@murmur 我也用 nodejs 写后端哈,所以还是有一些需求的,比如配置文件在 WSL 下就可以沿用 / 路径风格,再就是 Windows 下开发,部署在 Linux 总归还是有点慌的
pupboss
2022-01-25 11:32:38 +08:00
@harchiko 你说的这个没错的,我是在宿主机克隆的仓库,如果 WSL 一把梭就没啥问题,WSL 一把梭主要问题是文件拷贝太慢,还有端口映射麻烦一些
Shazoo
2022-01-25 11:34:19 +08:00
@harchiko 提醒下,如果电脑长期不关机,wsl 跑点服务(诸如 redis ,nginx 之类),一旦碰到 windows 更新重启,会丢失桌面。

ltsc 、零售版都碰到同样问题。发生概率 1 年 3 次,出现在笔记本和 nuc 上。

多注意提交代码哈。真出现了 wsl 的文件基本无法恢复……
plams
2022-01-25 11:35:10 +08:00
win11+ WSL2 体验挺好的, 开发在 win 中用 ide 连接 wsl 中的环境, 和 mac 体验差不多(还有显卡能调用
pupboss
2022-01-25 11:35:50 +08:00
@ShadowPower 哈哈是的,我昨天也在想这个问题,小白看到网上的教程,安装完软件之后监听 0.0.0.0 ,localhost:xxxx 可以访问,但是局域网其他机器访问不到,如果不了解 WSL2 的网络隔离,怎么都不会想明白
murmur
2022-01-25 11:36:48 +08:00
@pupboss 这个我也遇到过,很多地方都得用 path.sep
pupboss
2022-01-25 11:37:09 +08:00
@Shazoo 感谢老哥提醒,我就是因为这类原因不敢把项目文件放在 WSL ,但是放宿主机就有文件 mode 777 的问题,闭环了
bthulu
2022-01-25 11:37:32 +08:00
@pupboss 你难道不知道如今 win10 的路径风格是兼容 linux 路径风格的? 你完全按照 Linux 那套在 win10 下开发就是了
gadfly3173
2022-01-25 11:37:47 +08:00
@XTTX #17 nvm 之类的东西可以解决
harchiko
2022-01-25 11:39:02 +08:00
@Shazoo #23 问题不大,我不跑这些服务,就跑个 cronjob, 这些服务我一般都用 docker 来搞.
bthulu
2022-01-25 11:39:36 +08:00
@pupboss windows 下 /app/就是 C:/app/, 你把 c 盘当做 linux 根目录来看待就是了
pupboss
2022-01-25 11:40:13 +08:00
@bthulu ojbk 我再体验体验
aflow
2022-01-25 11:44:38 +08:00
定时任务的话可以写脚本放到 windows 任务计划里自动运行。
传大量小文件话还是打包下再传会快很多,网络的话 wsl2 只会绑定到宿主机的 v6 地址,可以通过 localhost 访问,如果需要绑定到本机 127.0.0.1 的话可以看下这个 [WSLHostPatcher]( https://github.com/CzBiX/WSLHostPatcher)
harchiko
2022-01-25 11:45:48 +08:00
@pupboss #32 我不知道你是不是用的 wsl2, wsl2 下访问 c 盘是 /mnt/c 不会存在文件丢失的情况,也不需要 sync
pupboss
2022-01-25 11:49:51 +08:00
@harchiko 这个可能没说清楚,代码如果放 WSL home 目录,git 环境没问题一切正常,不过根据楼上老哥的说法,Windows 大版本更新的时候会导致 WSL 挂掉,文件就丢了

所以我最早是把代码放宿主机,从 /mnt/c 访问,但是有俩问题,1. 文件权限全部是 777 导致 git 不正常 2. 宿主机传输文件速度慢的发指
harchiko
2022-01-25 11:52:27 +08:00
@pupboss #35 -.- 我 win10 升到 win11 wsl 都没挂...
harchiko
2022-01-25 11:53:06 +08:00
@pupboss #35 读取文件确实会有一些性能问题.
2i2Re2PLMaDnghL
2022-01-25 12:41:28 +08:00
从 WSL 内拉取代码和新建文件就不会有 777 的问题了
murmur
2022-01-25 12:44:28 +08:00
@XTTX 能不能举个例子,我现在迷迷糊糊把 node 版本从 6 升到 12 好像都没遇到什么问题,node 哪些功能不做旧版兼容的么
hyq
2022-01-25 12:56:16 +08:00
@murmur 某些版本的的 node 装某些版本的库,会有需要编译的情况,然后由于本机上可能配置对应的编译环境,导致安装失败。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/830414

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX