在 VMware 下的 Linux 中的共享文件夹中使用 npm install
时报错
报错信息
npm ERR! code ENOTSUP
npm ERR! syscall symlink
npm ERR! path ../@babel/parser/bin/babel-parser.js
npm ERR! dest /mnt/hgfs/SharedFolder/notebooks/test/node_modules/.bin/parser
npm ERR! errno -95
npm ERR! ENOTSUP: operation not supported on socket, symlink '../@babel/parser/bin/
babel-parser.js' -> '/mnt/hgfs/SharedFolder/notebooks/test/node_modules/.bin/parser'
环境
Win 11 + VMware 下的 Linux + VMware 的共享文件夹
分析
该报错说的是无法创建一个符号链接。(实测在 VMware 下的 Linux 中的共享文件夹中创建符号链接会报错,报错信息中有 Operation not supported
。)
解决方案
- 使用
npm config set bin-links false
,让 npm 不创建符号链接。bin-links 选项可以用来控制 npm 是否为包可执行文件创建符号链接。 - 不在该共享文件夹下使用
npm install
,直接在 Linux 中操作。不能创建符号链接的话,npm 在安装依赖时,就无法在 node_modules/.bin 目录下为可执行文件创建符号链接。这样的话,在用npm run xxx
之类命令时就会报错xxx not found
,因为 npm 在 node_modules/.bin 目录中找不到相应的可执行文件。