我被一个错误搞了一个晚上,什么都没有干,光找这个错误了。
这个问题大概就是说,npm默认会使用symbolic links来安装组件,
也即我们在linux系统里经常用的软链接(ln -s)或硬链接(ln),
但是有些文件系统不支持文件链接,
比如Windows(或者说出于安全原因禁用了),有时候linux系统运行在有windows分区的硬盘上也不支持链接,
比如virtualbox在windows主机上默认禁止在共享文件夹里使用symbolic links,
当然也是出于安全考虑。
那么npm install默认需要使用symbolic link,而且这也本身也是npm比较重要的一个特性,但如果我们的系统不支持这一属性的话,就会报上面的错误了。
解决办法,就是在npm install的时候加上一个参数,就是–no-bin-links,也即npm install --no-bin-links
但是,这样也就仅仅局限于安装的时候不会报错,但是在编译的时候还是会报错的,执行 npm run watch-poll 或者 npm run dev 仍然失败
解决办法:
其实 windows上 也能使用文件链接,但条件是,必须是拥有管理员权限才行,如果你在执行 vagrant up前,打开你的命令行的时候,使用了管理员权限来打开,那么其实 npm install 不加 --no-bin-links 也不会报错,npm run watch-poll 或者 npm run dev 也不会报错了。
这样就可以成功安装mix了
参考:
方案一