Windows下安装前端项目,node-sass报错

2,969 阅读2分钟

从新开始用Windows环境开发前端,下载了项目之后,安装依赖包报错,一看是node-sass提示python没有配置,但是本地已经安装了python 3.8,开始寻找问题解决办法。

verb ensuring that file exists: C:\Python27\python.exe
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "c:\Python\27\python.exe", you can set the PYTHON env variable. 

根据错误提示,猜测应该是需要python 2.7环境,搜了一下确实需要装2.7,而不管你本地是否有最新的python。通过安装windows-build-tools来安装python 2.7环境。 windows-build-tools安装之后会自动下载安装Visual C++ Build Tools, 也会安装Python 2.7。想了解更多可以看看windows-build-tools的github网站

npm install --global --production windows-build-tools

提示成功安装之后,然后重新npm install node-sass@4.11.0,结果还是提示python不存在。

然后看下面有提到用npm config设置python对应的路径,搜了一下npm config语法:

npm config set <key> <value> [--global]
npm config get <key>
npm config delete <key>
npm config list
npm config edit

在设置配置属性时属性值默认是被存储于用户配置文件中,如果加上--global,则被存储在全局配置文件中。
如果要查看npm的所有配置属性(包括默认配置),可以使用npm config ls -l。
如果要查看npm的各种配置的含义,可以使用npm help config。
其他语法自行搜索,就用到了上面的这些。

按照上面设置:

npm config set python "c:\Python\27\python.exe"

设置之后重新安装依然不行,发现python安装了,但没有装在默认的安装位置上,所以说config也没有用,通过everything搜索到python的安装位置,在.window-build-tools下面,通过config重新设置新路径:

npm config set python "C:\Users\gaoji\.windows-build-tools\python27\python.exe"

结果python错误好了,提示别的错误:

d:\projects\pintec\front-end-projects\sti-in-web\node_modules\node-sass\src\create_string.cpp(17): error C2664: “v8:: String::Utf8Value::Utf8Value(const v8::String::Utf8Value &)”: 无法将参数 1 从“v8::Local<v8::Value>”转换为“const v8::String::Utf8

这个是4.11.0用的String::Utf8Value语法,该语法node 12上面移除了,而我用的node 13版本,看到下面作者说已经在node-sass 4.12版本已经改了,就安装了4.12版本,运行成功,页面可以正常访问。

问题参考页面:
github.com/felixrieseb…
github.com/sass/node-s…

看到别的安装windows-build-tools语法:

npm --add-python-to-path='true' --debug install --global windows-build-tools