vue安装node-sass提示没有vendor目录及binding.node文件的解决办法

一. 异常现象

我在网上下载了一个开源的vue项目,然后执行如下命令:

npm run dev

结果产生如下图所示异常信息:

vue安装node-sass提示没有vendor目录及binding.node文件的解决办法_官网


这是因为vue项目中有一个package.json文件,该文件中规定了各种依赖项,我们首先会执行 ​​npm install​​ 的操作,下载vue项目的各种依赖包。正常情况下,会在vue项目中生成完整的 node_modules 依赖, 但是现在node_modules文件夹中,node-sass模块中缺失了一个vendor文件夹及其内容。

我们这时候访问自己的vue项目,浏览器产生如下信息:

vue安装node-sass提示没有vendor目录及binding.node文件的解决办法_重新编译_02


总之,根本原因就是vendor依赖包没有下载完整!

vue安装node-sass提示没有vendor目录及binding.node文件的解决办法_官网_03


会发现没有vendor文件夹!

二. 解决办法

1. 解决办法一

在上图的node-sass文件夹下,自己手动创建一个 vendor 文件夹,然后再运行如下命令:

npm rebuild node-sass --save-dev

之后,查看node-sass文件夹,最终如下图所示:

vue安装node-sass提示没有vendor目录及binding.node文件的解决办法_重新编译_04


最后重新执行:

npm run dev

项目就可以正常启动了。

2. 解决办法二

上面的解决办法中,npm rebuild node-sass --save-dev是用来重新编译下载node-sass命令的,但是有可能因为受限于网络因素,而导致node-sass还是下载不下来,所以我们可以去node-sass官网,手动进行依赖包的下载。

官网地址:
​​​https://github.com/sass/node-sass/releases​

在官网上选择对应版本的 binding.node 文件进行下载,并放入到报错项目的 /node-sass/vendor文件夹下。

vue安装node-sass提示没有vendor目录及binding.node文件的解决办法_重新编译_05


注意:

下载的是 .node 文件,不要下载错!!!

在下载完成后,把win32-x64-64_binding.node文件名称修改为binding.node,然后复制到vendor文件夹下,重新编译即可!

vue安装node-sass提示没有vendor目录及binding.node文件的解决办法_依赖包_06

此时项目可以正常访问了,问题得以解决!

vue安装node-sass提示没有vendor目录及binding.node文件的解决办法_依赖包_07