You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04离线安装node-sass-chokidar遇node-gyp问题求助

解决Ubuntu 16.04离线环境下node-sass-chokidar安装问题

我之前在离线服务器上折腾过node-gyp和node-sass的安装,特别能理解你这种明明下了依赖文件却跑不通的烦躁!针对Ubuntu 16.04的离线场景,给你梳理几个精准的步骤试试:

  • 先核对版本匹配性
    这是最容易踩坑的点:你下载的node头文件必须和本地Node.js版本完全对应(比如Node v12.22.12对应node-v12.22.12-headers.tar.gz),而node-sass的二进制包也要同时匹配Node版本和系统架构(Ubuntu 16.04是x64,所以找linux-x64-xx_binding.node,xx对应Node的ABI版本,比如Node v12对应ABI 72)。版本不匹配的话,文件再全也没用。

  • 给node-gyp指定离线头文件路径
    手动解压头文件后,通过环境变量或者命令参数告诉node-gyp去哪里找:
    方式一:先设置环境变量

    export npm_config_nodedir=/path/to/your/extracted-headers-folder
    

    这里的路径要指向解压后的头文件根目录,里面能看到include/node文件夹才算正确。
    方式二:直接在yarn命令中指定

    yarn add node-sass-chokidar --nodedir=/path/to/your/extracted-headers-folder
    
  • 跳过node-gyp编译:给node-sass指定本地二进制包
    如果能找到对应版本的node-sass二进制包,直接用它可以绕开node-gyp的编译环节,这会省心很多:

    1. 把下载好的linux-x64-xx_binding.node放到本地某个目录
    2. 设置环境变量指定二进制包路径:
    export SASS_BINARY_PATH=/path/to/your/linux-x64-xx_binding.node
    
    1. 再执行yarn安装命令,node-sass就会直接使用本地二进制包,不会触发node-gyp的远程请求或编译。
  • 确保系统依赖已安装
    Ubuntu 16.04下node-gyp编译需要基础构建工具,即使离线也要先确保这些包已经装好(如果之前没装的话):

    sudo apt-get install build-essential python2.7
    

    注意旧版本Node.js对应的node-gyp依赖Python 2.7,别搞错成Python3了。

  • 分步安装排查问题
    如果直接装node-sass-chokidar还是失败,可以先单独安装node-sass,确认它能离线安装成功后,再安装node-sass-chokidar:

    yarn add node-sass --nodedir=/path/to/headers --sass-binary-path=/path/to/binding.node
    

    这样能把层级依赖的问题拆开,更容易定位到底是node-sass还是上层依赖的问题。

内容的提问来源于stack exchange,提问作者Jjang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:22:26