node-sass使用python2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node-sass使用python2相关的知识,希望对你有一定的参考价值。

参考技术A 可以使用
nodesass是一个库,它将Node.js绑定到LibSass【流行样式表预处理器Sass的C版本】,它允许用户以令人难以置信的速度将【.scss】文件本地编译为css,并通过连接中间件自动编译。Sass是一种预处理器脚本语言,可以解释或编译成层叠样式表(CSS)。

node-sass安装失败解决方法

node-sass安装失败,提示如下:

gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python D:Program FilesPython38python.EXE
gyp ERR! configure error
gyp ERR! stack Error: Command failed: D:Program FilesPython38python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "<string>", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                       ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:303:12)
gyp ERR! stack     at ChildProcess.emit (events.js:310:20)
gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
gyp ERR! System Windows_NT 10.0.18362
gyp ERR! command "D:Program Files
odejs
ode.exe" "E:JDProject
enren-fast-vue
ode_modules
ode-gypin
ode-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd E:JDProject
enren-fast-vue
ode_modules
ode-sass
gyp ERR! node -v v12.16.3
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modulesfsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.9.0 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.9.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:UsersHPAppDataRoaming
pm-cache\\_logs2020-05-23T06_27_44_952Z-debug.log

原因

print "%s.%s.%s" % sys.version_info[:3];

为python2.x版本的语法,如果本地安装的是python3.x,就会报此错误

 

解决方法:

 1. 删除项目中的package-lock.json文件,清除缓存,更新版本号

  #后续步骤运行npm install 命令时会重新生成package-lock.json文件

rm ./package-lock.json  (如果windows系统,手动删除即可)
# linux 或windows cmd命令窗口下: npm cache
clear --force npm install -g npm

 

 2. 修改package-lock.json中依赖包的版本号

    "node-sass": "4.14.1",
    "npm": "^6.14.5",
  #sass-loader版本为可选项,如果项目很旧,sass-loader版本最好不要改动,否则容易引起项目启动异常 "sass-loader": "8.0.2",
  
  

npm 版本号: npm -v  命令获取

node-sass 版本号:https://www.npmjs.com/package/node-sa      #用比较新的版本

sass-loader 版本号:https://www.npmjs.com/package/sass-loader  #用比较新的版本


技术图片

 

 

 3 重新运行 npm install 命令,即可成功

技术图片

 

以上是关于node-sass使用python2的主要内容,如果未能解决你的问题,请参考以下文章

Node-sass / sass-loader 替代方案

Node-sass 不在 npm 脚本中使用管道

在 sass 函数中使用 css 变量 - node-sass

更新 NodeJS 后使用 node-sass 的问题

使用 Node-sass 缩小 CSS

在 nodejs 中使用 node-sass 时找不到 libsass 绑定