Windows 主机使用 VMware 虚拟机在共享文件夹调试 node.js 时 npm install 报错问题的处理
由于 node.js 在 Windows 下会有各种问题,最好的开发环境还是 Linux,所以我通过 VMware 内安装 Ubuntu 虚拟机的方式学习 node.js。
我的流程是:
- VMware 安装 Ubuntu
- 共享 Windows 下的文件夹给 Ubuntu 作为开发目录
- Windows 下使用 vs code 通过 ssh 方式远程连接 Ubuntu
通过远程连接的方式在 Windows 下做 node.js 开发实际体验很好。但是在通过 npm 安装某些包时常常会有报错出现,错误日志大概意思就是说无法给 node_modules 文件夹内安装的库文件添加软连接到系统路径。
网上查询后发现了问题原因,我的开发目录实际是在 Windows 下的,Windows 和 Linux 有着不一样的文件系统和路径格式,所以 npm 在安装某些包含 bin 可执行文件的第三方库时,会默认自动创建相关文件的软链接到 Linux 系统路径,这样就就报错了。
如果要坚持使用共享目录的形式做开发,那么需要设置在 npm 安装新库时使用参数 --no-bin-links
告诉系统不要自动创建软连接,语法如下:
npm install cowsay --no-bin-links
这样就会跳过相关步骤。
也可以设置到 npm 配置中,这样以后安装的包都会默认不创建 bin 的软连接了:
npm config set bin-links false
当然最理想的方式就是将开发路径放置在 Linux 系统中,而不是通过共享目录的形式。这样就是一个纯原生的环境。