• node-sass 安装失败


    安装失败的原因,为什么node—sass总是安装失败?有非常详尽的解释。下面引用一下原理:
    我们在说失败原因之前,先来分析一下node-sass的安装过程(以下node版本为v10.15.3):

    PS D:demo> npm i node-sass
    
    // 从npm源安装到node_modules
    > node-sass@4.13.0 install D:demo
    ode_modules
    ode-sass
    > node scripts/install.js
    
    // 下载binding.node
    Downloading binary from https://github.com/sass/node-sass/releases/download/v4.13.0/win32-x64-64_binding.node
    Download complete .] - :
    Binary saved to D:demo
    ode_modules
    ode-sassvendorwin32-x64-64inding.node
    
    // 缓存binding.node
    Caching binary to C:UsersleepiAppDataRoaming
    pm-cache
    ode-sass4.13.0win32-x64-64_binding.node
    
    > node-sass@4.13.0 postinstall D:demo
    ode_modules
    ode-sass
    > node scripts/build.js
    
    Binary found at D:demo
    ode_modules
    ode-sassvendorwin32-x64-64inding.node
    Testing binary
    Binary is fine
    
    // 写package-lock.json
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN demo@1.0.0 No description
    npm WARN demo@1.0.0 No repository field.
    
    + node-sass@4.13.0
    added 174 packages from 138 contributors and audited 529 packages in 24.379s
    found 0 vulnerabilities
    

    我们可以看到,安装node-sass有几个步骤:

    1. 校验本地node_modules中是否已安装node-sass,版本是否一致;
    2. 如未安装或版本不符,从npm源安装node-sass本体;
    3. 检测全局缓存和本地中是否有binding.node,如有即跳过安装;
    4. 没有binding.node则从github下载该二进制文件并将其缓存到全局;
    5. 假如binding.node下载失败,则尝试本地编译出该文件;
    6. 将版本信息写到package-lock.json;

    由此看到,实际上node-sass依赖了一个二进制文件binding.node,从npm源安装完本体后还会从github下载binding.node。

    我的问题是npm无法从github网页上自行下载binding.node
    解决方法:(这里的下载网址注意一下版本号)

    1. 先到网页 https://github.com/sass/node-sass/releases/download/v4.12.0/win32-x64-64_binding.node 自行下载binding.node
    2. 把binding.node放在全局node_cache中(我的路径是D:AppDataNodejs ode_cache,默认路径是C:UsersxymAppDataRoaming pm-cache)
    3. 然后针对版本安装
    npm install --save-dev node-sass@4.12.0
    
    1. 解决。
  • 相关阅读:
    PHP获取当前页面完整url地址,包括参数的函数
    研究在SAE上搭建最新wordpress
    CentOS6.5 编译安装lnmp环境
    cried me a river--kristinia debarge
    Bad Day -- Daniel Powter
    Back to December -- Taylor Swift
    英语单词的偏旁部首之常见前缀(一)
    21 Guns -- Green Day
    影子
    BNUOJ 1037 精神控制
  • 原文地址:https://www.cnblogs.com/xym4869/p/13265533.html
Copyright © 2020-2023  润新知