前言
由前面介绍的 Sass简介 中可以知道,node-sass 是一个基于 c++ 语言的 libSass 的扩展模块。
Node.js 使用 node-gyp 作为其构建系统来编译C++扩展模块。node-gyp 本身依赖于 Python 2.x 或 Python 3.x,因为它需要使用 Python 来执行一些构建操作,例如编译和链接C++代码。因此在安装使用 node-sass 的时候导致间接依赖 python。
npm 会在下载 node-sass 的时候,实际上是下载了包含了 LibSass 源代码的 C++ 扩展模块。Node.js 会使用 node-gyp 构建 C++ 扩展模块,将其编译成符合本地环境的 .node 文件,然后将其放置在 node_modules 目录下,供 Node.js 在运行时加载和使用。
但是由于不同操作系统和环境的差异,编译 C++ 扩展模块可能会存在一些问题,例如编译错误、链接错误等。导致我们在安装 node-sass 的时候总是出现各种问题,从而安装不成功。
旧项目
对于老旧的无法更新的项目:
- 我们可以从 node-sass 的官网 https://github.com/sass/node-sass/releases 直接下载编译好的 .node 文件。但是使用已经编译好的 .node 文件可能会存在一些潜在的问题,例如与您的 Node.js 版本不兼容、操作系统不兼容等。
- 根据具体的报错进行特定的环境安装和依赖版本更新,如安装 python 、GCC 或 G++ 等。
新项目
对于新项目:
直接废弃 node-sass ,改用 dart-sass,就不会出现安装不成功的糟心事了!!!