1.The node binary used for scripts is /snap/bin/node but npm is using /snap/node/3292/bin/node itself
在执行npm run build
的时候,发现在一个服务器上/本机安装多个版本的nodejs
或者你的依赖指向多个node
就会在编译的时候出现警告,并且编译失败。
意思是node的库使用的是/snap/bin/node
,但是npm
用的是/snap/node/3292/bin/node
,并且提示信息也给出了需要区设置scripts-prepend-node-path
The node binary used for scripts is /snap/bin/node but npm is using /snap/node/3292/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with
需要区手动设置一下
npm config set scripts-prepend-node-path true
2. /usr/bin/env: ‘node’: Too many levels of symbolic links
最近在使用npm
执行命令的时候总会出现这个问题
/usr/bin/env: ‘node’: Too many levels of symbolic links
那么基本上就是node
本身带有软连接。切换到目录下
cd /usr/local/bin/
ll
会发现出现了两个软件接,node
和npm
链向了自己
npm默认会使用symbolic links来安装组件,也即我们在linux系统里经常用的软链接(ln -s)或硬链接(ln),但是有些文件系统不支持文件链接,比如Windows(或者说出于安全原因禁用了),有时候linux系统运行在有windows分区的硬盘上也不支持链接,比如virtualbox在windows主机上默认禁止在共享文件夹里使用symbolic links。
所以需要删除这种软连接sudo rm node
和sudo rm npm
然后再执行安装命令,问题就不会出现了