Windows下安装前端项目,node-sass报错
从新开始用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版本,运行成功,页面可以正常访问。
问题参考页面:
https://github.com/felixriese...
https://github.com/sass/node-...
看到别的安装windows-build-tools语法:
npm --add-python-to-path='true' --debug install --global windows-build-tools