• npm install node-sass失败解决办法


    npm install node-sass失败解决办法

    npm安装node-sass总是报错,错误信息如下:

    Building: D:\Program Files (x86)\nodejs\node.exe F:\workspace_vue\project\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
    gyp info it worked if it ends with ok
    gyp verb cli [
    gyp verb cli   'D:\\Program Files (x86)\\nodejs\\node.exe',
    gyp verb cli   'F:\\workspace_vue\\project\\node_modules\\node-gyp\\bin\\node-gyp.js',
    gyp verb cli   'rebuild',
    gyp verb cli   '--verbose',
    gyp verb cli   '--libsass_ext=',
    gyp verb cli   '--libsass_cflags=',
    gyp verb cli   '--libsass_ldflags=',
    gyp verb cli   '--libsass_library='
    gyp verb cli ]
    gyp info using node-gyp@3.8.0
    gyp info using node@12.17.0 | win32 | x64
    gyp verb command rebuild []
    gyp verb command clean []
    gyp verb clean removing "build" directory
    gyp verb command configure []
    gyp verb check python checking for Python executable "python2" in the PATH
    gyp verb `which` failed Error: not found: python2
    gyp verb `which` failed     at getNotFoundError (F:\workspace_vue\project\node_modules\which\which.js:13:12)
    gyp verb `which` failed     at F (F:\workspace_vue\project\node_modules\which\which.js:68:19)
    gyp verb `which` failed     at E (F:\workspace_vue\project\node_modules\which\which.js:80:29)
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\which\which.js:89:16
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\index.js:42:5
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\windows.js:36:5
    gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:167:21)
    gyp verb `which` failed  python2 Error: not found: python2
    gyp verb `which` failed     at getNotFoundError (F:\workspace_vue\project\node_modules\which\which.js:13:12)
    gyp verb `which` failed     at F (F:\workspace_vue\project\node_modules\which\which.js:68:19)
    gyp verb `which` failed     at E (F:\workspace_vue\project\node_modules\which\which.js:80:29)
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\which\which.js:89:16
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\index.js:42:5
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\windows.js:36:5
    gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:167:21) {
    gyp verb `which` failed   code: 'ENOENT'
    gyp verb `which` failed }
    gyp verb check python checking for Python executable "python" in the PATH
    gyp verb `which` failed Error: not found: python
    gyp verb `which` failed     at getNotFoundError (F:\workspace_vue\project\node_modules\which\which.js:13:12)
    gyp verb `which` failed     at F (F:\workspace_vue\project\node_modules\which\which.js:68:19)
    gyp verb `which` failed     at E (F:\workspace_vue\project\node_modules\which\which.js:80:29)
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\which\which.js:89:16
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\index.js:42:5
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\windows.js:36:5
    gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:167:21)
    gyp verb `which` failed  python Error: not found: python
    gyp verb `which` failed     at getNotFoundError (F:\workspace_vue\project\node_modules\which\which.js:13:12)
    gyp verb `which` failed     at F (F:\workspace_vue\project\node_modules\which\which.js:68:19)
    gyp verb `which` failed     at E (F:\workspace_vue\project\node_modules\which\which.js:80:29)
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\which\which.js:89:16
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\index.js:42:5
    gyp verb `which` failed     at F:\workspace_vue\project\node_modules\isexe\windows.js:36:5
    gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:167:21) {
    gyp verb `which` failed   code: 'ENOENT'
    gyp verb `which` failed }
    gyp verb could not find "python". checking python launcher
    gyp verb could not find "python". guessing location
    gyp verb ensuring that file exists: C:\Python27\python.exe
    gyp ERR! configure error
    gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
    gyp ERR! stack     at PythonFinder.failNoPython (F:\workspace_vue\project\node_modules\node-gyp\lib\configure.js:484:19)
    gyp ERR! stack     at PythonFinder.<anonymous> (F:\workspace_vue\project\node_modules\node-gyp\lib\configure.js:509:16)
    gyp ERR! stack     at callback (F:\workspace_vue\project\node_modules\graceful-fs\polyfills.js:295:20)
    gyp ERR! stack     at FSReqCallback.oncomplete (fs.js:167:21)
    gyp ERR! System Windows_NT 6.1.7601
    gyp ERR! command "D:\\Program Files (x86)\\nodejs\\node.exe" "F:\\workspace_vue\\project\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
    gyp ERR! cwd F:\workspace_vue\project\node_modules\node-sass
    gyp ERR! node -v v12.17.0
    gyp ERR! node-gyp -v v3.8.0
    gyp ERR! not ok
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    错误原因:
    node-sass会依赖一个二进制文件binding.node,当下载node-sass时,会先下载这个文件,如果本地没有安装过这个文件,会在github下载该文件并将其缓存到全局;一般下载的时候会因为网络的原因下载失败,node-sass会尝试在本地编译binding.node,这个过程就需要用python。这时就会报错说没安装python,如果binding.node下载成功的话就不会报这个错

    解决办法:将npm源设置成淘宝镜像源,将binding.node源也改为淘宝镜像源

    npm config set registry https://registry.npm.taobao.org
    npm config set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/
    
    • 1
    • 2

    如果本地已经有了node-sass,要先把之前的卸载

    npm uninstall node-sass
    
    • 1

    安装node-sass即可安装成功

    后续可能还会报错

    Error: Node Sass version 7.0.1 is incompatible with ^4.0.0.
    node sass报错
    项目由于安装的node版本不同,安装依赖后导致项目运行失败并有报错问题。

    解决方案:
    如果是先执行了npm install之后发现项目运行时报Node Sass version 7.0.0 is incompatible with ^4.0.0类似这样的错,那么需要先卸载已下载好的node-sass依赖

    1、npm uninstall node-sass;
    2、npm i -D sass;
    3、npm run dev;
    
    • 1
    • 2
    • 3

    用npm 卸载安装不了的同学可以试一下cnpm
    npm install -g cnpm -registry=https://registry.npm.taobao.org

    这样就成功了~~~~~

  • 相关阅读:
    CURL命令 : GET、POST请求、文件下载等常用命令
    linux——环境基础开发工具使用
    Oracle-数据库对象的使用
    8、免费访问 GPT-4 的 3 种方法
    Java各版本发行时间表
    vue自定义组件——search-box
    12个常见idea快捷键
    JS踩坑: for let 和 for var的区别
    loongarch集成preempt rt后ltpstress死机的问题分析
    探索OpenCV中直方图的神奇之处:应用与实现
  • 原文地址:https://blog.csdn.net/controller_Lw/article/details/126778076