用于节点应用程序的 LibSass 的 SCSS 编译器替代方案 [关闭]
Posted
技术标签:
【中文标题】用于节点应用程序的 LibSass 的 SCSS 编译器替代方案 [关闭]【英文标题】:SCSS-compiler alternatives to LibSass for a node app [closed] 【发布时间】:2018-02-20 20:00:21 【问题描述】:Libsass 似乎是最流行的 SCSS 编译器之一,http://sass-lang.com/libsass 列出了许多常见编程语言的各种 libsass 包装器。对于节点应用程序,node-sass 和相应的 webpack 或 gulp 加载器似乎是最明显的选择。然而,安装和使用 node-sass 需要 github 访问和 python 2.7 解释器,由于我不想在这里讨论的原因,我的生产环境中都没有。
-
在没有 github 访问和 python 解释器的情况下,在生产环境中安装和使用 node-sass 是否有可行的解决方法?
是否有其他 SCSS - 可以通过 webpack 或 gulp 使用的编译器
不需要 Github 访问权限和/或安装的 python 解释器?
【问题讨论】:
【参考方案1】:现在有Dart-Sass,这是官方的“Sass 的主要实现”。它适用于通过 GitHub、Chocolatey、Scoop、Homebrew 等提供的所有主要操作系统。
对于您的用例,我会使用转换为 javascript on npm 的版本。根据我对一个体面大小的旧 Sass 项目 (VideoJS) 的测试,Dart-Sass 的执行速度比 node-sass 稍慢,但如果您进行细微的更改也不错。
第二个pure-JS node-sass alternative is PostCSS,尽管您可能无法使用您想要的所有 Sass 功能。
【讨论】:
【参考方案2】:虽然类似于@tsi 提供的答案,但我建议您的构建不是在开发机器上进行,而是在构建框上进行。
一些选项包括Gitlabs CI 或Bitbucket pipelines
如果您确实在开发机器上运行它,请确保在 Vagrant 或 Docker 中执行它以创建一致的工件。
要回答你的第二个问题,不,似乎没有其他选择
【讨论】:
【参考方案3】:除非您的应用必须即时编译 Sass,否则您可能应该在开发机器上编译您的样式并将静态 CSS 推送到您的生产环境。
【讨论】:
遗憾的是,我还没有找到可以安装在我选择的 CI/CD 中的 node-sass 版本。在开发机器上编译并检查编译后的 CSS 是我最终解决这个问题的方法。以上是关于用于节点应用程序的 LibSass 的 SCSS 编译器替代方案 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
节点 0.12.2 上的节点 sass 2.1.1:找不到“libsass”绑定。尝试重新安装 `node-sass`
如何使用 node-sass(无 Ruby)编译或转换 sass / scss 为 css?