由于 ubuntu 上的 node-sass,npm install 不起作用

npm install doesn't work because of node-sass on ubuntu

我正在尝试 npm install Ubuntu 上的一个项目,但出现此错误:

Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)

我在 Stack Overflow 上找到的解决方案是 运行 npm rebuild node-sass,就像在这个线程中一样:

Node Sass does not yet support your current environment: Linux 64-bit with false

当我第一次尝试这个解决方案时,我得到了这个错误:

npm - “Can't find Python executable ”python“, you can set the PYTHON env variable.”

我找到的解决方案是从这里安装 Python 2.7:

Can't find Python executable "python"

现在当我 运行 python --version 我得到: Python 2.7.18

所以我删除了 node_modules 文件夹和锁定文件,然后再次 运行 npm install,但是没有用,现在我遇到了构建错误,你可以在这个要点中找到:

https://gist.github.com/aimad-majdou/b99c5295b56fd5bc68492fa638d63018

我在 Mac OS 和 Windows 上安装这个项目从来没有遇到过问题,但这是我第一次尝试在 Ubuntu 上安装它。

我该如何解决这个问题?

我从要点上看出,您的 ubuntu 上的 运行 节点版本 16.x。可以看出 here,这可能是节点 16 与您尝试构建的节点-sass 版本之间的版本不兼容。您应该至少使用 node-sass 版本 6.0.1 来支持节点 16。

有两种解决方案。

1。修复 python 为 npm

安装

您可以通过 运行 以下命令告诉 npm 使用 python 的正确版本:

npm config set python python2.7

希望在此之后您可以构建节点-sass。

不过,我个人使用了另一种解决方案:

2。停止使用 node-sass

在 npm 上有一个纯 javascriptsass 实现,称为 sass。它与 node-sass 兼容。只需将 node-sass 替换为 sass.

当然,您常常没有决定使用哪个 sass 模块。通常像 React 这样的框架决定使用像 node-sass 这样的二进制模块,所以你不得不使用它。嗯,你可以在你的项目中覆盖它。

打开您的 package.json 文件并将 dependencies 中的 node-sass 行编辑为:

"dependencies": {
    ...
    "node-sass": "npm:sass@^1.30.0",
    ...
}

这告诉 npm 安装 sass 版本 1.30.0 作为 node-sass。由于 sass 模块命令中的 sass 与 node-sass 中的 sass 命令兼容,您现在可以构建项目而无需担心构建 sass。当然,如果您愿意,可以使用更新版本的 sass。