求教 win 下做 Nodejs React 前后端开发的最佳姿势是什么?用 docker 合适吗?

发布于 1周前 作者 wuwangju 来自 nodejs/Nestjs

求教 win 下做 Nodejs React 前后端开发的最佳姿势是什么?用 docker 合适吗?

开发内容:node 服务端的简单处理和 react 的前端 ui 。

不想在本机环境下装 node ,一方面是安全考虑,另一方面是想偶尔换个系统的话 docker comit 一下也方便。

我是这么想的: docker 运行 ubuntu 镜像里装 node ,用本地 vscode 通过远程 wsl 在 docker 中编辑调试,然后本机浏览器访问 wsl 查看。

不知道姿势是否正确,会有坑吗?请大佬们纠正。


24 回复

可以,但没必要


大佬是怎么操作的?

我觉得直接本地开发或者用一个 Linux 虚拟机比较好

在 WSL2 里开发,node 版本交给包管理器去管理

用 hyper-v 虚拟个 ubuntu server 跟开个 docker 跑容器没啥区别吧。ubuntu desktop 装完依赖又消耗好多个 G 。

用什么 IDE ?

你都说不想在本机环境下装 node ,那为什么要在本地环境下装 vs code 呢

VSCode 链接进去就行了。
docker for windows 也是要用 hyper-v 先虚拟个 Linux 环境出来,而且现在版本已经是在 WSL2 里运行 docker-engine ,外部客户端通信的形式了。

挺纳闷的,为什么不在本机装 nodejs ? 在 v2 已经看到过很多人,要折腾一大圈去搞这些东西了,完全没任何意义啊

不想装 node 是不想暴露太多本机端口

恍然大悟。新建个 wsl2 环境也行是吧?

windows 防火墙是干嘛吃的, 怎么会暴露端口?

wsl2 吧,现在已经非常好用了。systemd 都能开了

一般会在 WSL2 内装 node ,然后外面用 VSCode 连进去开发。
我喜欢用 IntelliJ ,在 Windows 上装了个 XServer ,然后在 WSL2 里面装 IntelliJ ,可以显示界面进行开发。
Windows 上的 Docker desktop 很难用,可以用系统自带的 Hyper-V 虚拟机跑个轻量级的 Linux 用来做 Docker Host ,只需要在 WSL2 里配置一个 DOCKER_HOST 的环境变量就可以用 Docker CLI 直接操作了。

担心安全问题的话就虚拟机 Ubuntu Server 或者 Docker 。WSL 默认会暴露一些东西出去,保证不了安全。

就用 windows ,干嘛 wsl

之前用 win 的时候 wsl+vscode 挺好的,装了 zsh 终端体验很不错

折腾这么多环境就是不写代码,哈哈哈哈
其实现在好多编程开发根本用不到 Linux ,跨平台做得相当不错了

我想了一下,觉得最佳姿势应该是安装一个黑苹果,下载 docker desktop ,启动一个 Ubuntu 镜像,ssh 进去用 vim 编写 JavaScript 代码!

折腾这么多环境就是不写代码,说的就是我

用 docker 跑 node 镜像,把本地代码和其他要用的东西挂载进容器。这样 vscode 直接本地编辑代码,在容器中也能即时更新。
相当于用 docker 替代了 nvm 之类的 node 环境管理。

赞。目前我用 wsl 装了多个 ubuntu ,启动时不用设置网络不用绑定端口不用挂载。

在Windows下进行Node.js和React前后端开发,确实有多种方式,是否使用Docker取决于你的具体需求。

首先,Node.js和React可以分别进行开发,Node.js负责后端服务,React负责前端页面。在Windows下,你可以直接安装Node.js和相关的npm包来搭建开发环境。

关于是否使用Docker,Docker确实为开发带来了很多便利,特别是解决了环境不一致的问题。你可以使用Docker来创建Node.js的开发环境镜像,并在其中运行你的代码。这样,无论是你自己还是其他开发者,都可以使用这个镜像来快速搭建开发环境。

以下是一个简单的Docker使用示例:

  1. 创建一个Dockerfile文件,定义你的Node.js开发环境。
FROM node:lts
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 4000
CMD ["npm", "start"]
  1. 使用docker build命令构建镜像。
  2. 使用docker run命令运行容器,并在其中进行开发。

此外,你还可以考虑使用Docker Compose来管理多个容器,以及使用Docker的卷(Volumes)来持久化你的代码和数据。

总的来说,如果你希望解决环境不一致的问题,并希望你的开发环境更加便携和可复现,那么使用Docker是一个不错的选择。

回到顶部