同步发布:https://www.moeouo.cn/t/topic/93
像 Codeserver 这些依赖msvc编译安装的node项目,在需要迁移/复制时,为了它一个人而重新配置各类编译环境是非常痛苦的。在配置结束后,还会占用非常多的磁盘空间,又不能随便删掉,就怕他跑不起来了。
那么,有没有什么办法直接将他搬走呢?那必然是有的。
正文开始。 (本文章适用于搬迁一切局安装的npm包)
壹 · 环境介绍
- 源设备 Windows Server 2019 Node22.19.0 NPM10.9.3
- 新设备 Windows Server 2016 Node24.11.1 NPM11.6.2
- 迫害对象 code-server
贰 · 迁移过程
i. 打包原始数据
命令行执行npm config get prefix。
获得如下结果,即为npm全局包所在位置:
D:>npm config get prefix
C:\Users\Administrator\AppData\Roaming\npm
以下文件即为所需要的包文件,打包传输到新设备上。

ii. 新设备安装
同(i),取得npm包位置。
这里发生了一点小插曲。新设备是新安装的nodejs,并没有产生获取到的npm文件夹,这边通过安装pnpm、yarn来让他主动生成,反正早晚也是要用到的。命令:npm install pnpm yarn -g

新旧设备的npm包位置是保持一致的,如果两台设备的路径不同,那么npm根目录下的“code-server .cmd/ps1”中出现的绝对路径需要同时更改。修改部分见下:

将codeserver包搬走后,在命令行执行 code-server,出现缺依赖报错。
考虑到code-server依赖较多,一个个安装麻烦,我选择将所有node_modules文件一次性搬走。(其他包压缩完4M都不到来着
再次执行命令,顺利启动。

叁 · 检验成果
打开浏览器 localhost:8080,成功登录。迁移工作结束。

肆 · 结语
只有实战时你才会发现,事情并没有那么简单。
nodejs有许多不同的包管理器,实际情况可能会极其复杂,与文章内容也会有许多出入,本文仅为记录本人的一次迁移过程。欢迎各位批评指正。
