返回

Error: Node Sass 不支持 Mac M1

前端

在 Mac M1 芯片上用 Node.js Sass 克服建筑难题

如果你最近购买了搭载 M1 芯片的 Mac 电脑,并打算使用 Node.js Sass 进行样式转换,你可能会遇到一条令人沮丧的错误消息:“Error: Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64)”。别担心,我们有一个巧妙的解决办法,让你在 M1 Mac 上也能畅通无阻地使用 Node.js Sass。

Rosetta 2:M1 Mac 的秘密武器

Rosetta 2 是苹果公司为 M1 芯片量身打造的二进制翻译层。它就像一个翻译官,可以将专为英特尔芯片编写的应用程序转换为与 M1 芯片兼容的代码。有了它,我们就能让 Node.js Sass 在我们的 M1 Mac 上欢快起舞。

安装 Rosetta 2

  1. 打开终端应用程序。
  2. 复制并粘贴以下命令:/usr/sbin/softwareupdate --install-rosetta --agree-to-license
  3. 输入你的密码并按回车键。
  4. 安装完成后,重新启动你的 Mac。

安装 Node.js Sass

现在我们已经装备了 Rosetta 2,就可以安装 Node.js Sass 了。

  1. 再次打开终端应用程序。
  2. 复制并粘贴以下命令:npm install -g sass
  3. 输入你的密码并按回车键。

配置 Node.js Sass

为了确保 Node.js Sass 能与我们的 M1 Mac 完美契合,我们需要进行一些配置。

  1. 在终端中输入:sass --version
  2. 如果你看到以下输出:“Sass 1.51.0 (Node.js 16.13.2)”,那么恭喜你!Node.js Sass 已经配置好了。

愉快地使用 Node.js Sass

一切就绪,我们终于可以愉快地使用 Node.js Sass 了。

  1. 导航到要编译的 Sass 文件的目录。
  2. 在终端中输入以下命令:sass --output style=compressed style.scss style.css
  3. 一个名为 style.css 的文件将出现在当前目录中,里面包含编译后的样式。

常见问题解答

  • 为什么 Node.js Sass 不支持 M1 芯片?
    M1 芯片采用了与英特尔芯片不同的指令集架构 (ISA)。Node.js Sass 需要针对 M1 芯片的 ISA 进行重新编译,才能原生支持它。

  • 除了 Rosetta 2,还有其他方法可以在 M1 Mac 上使用 Node.js Sass 吗?
    目前没有其他官方支持的方法。但是,有些开发者创建了非官方的补丁,可能允许 Node.js Sass 在 M1 Mac 上原生运行。然而,这些补丁可能不稳定或不安全,因此不建议使用。

  • Rosetta 2 会影响 Node.js Sass 的性能吗?
    Rosetta 2 可能略微降低 Node.js Sass 的性能,因为它是翻译层而不是原生支持。然而,在大多数情况下,这种性能下降是难以察觉的。

  • Node.js Sass 会一直支持 M1 芯片吗?
    是的,Node.js Sass 团队正在积极开发对 M1 芯片的原生支持。预计未来版本将提供这种支持。

  • 如果我卸载了 Rosetta 2,会发生什么?
    如果你卸载了 Rosetta 2,任何依赖它的应用程序,包括 Node.js Sass,都将无法在 M1 Mac 上运行。