加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 在React项目中用平台无关的SASS编译器替换node-sass

发布时间:2020-12-15 20:47:55 所属栏目:百科 来源:网络整理
导读:我们是一个由大约6名开发人员组成的团队,他们使用异构设置( Windows 10,Ubuntu,macOS),并开始使用React进行开发. Linux / macOS和Linux之间的脚本Windows很痛苦,所以我们决定使用Bash for Windows来运行我们的构建.一旦你正确设置了Bash,并且与VS Code的集成
我们是一个由大约6名开发人员组成的团队,他们使用异构设置( Windows 10,Ubuntu,macOS),并开始使用React进行开发.

Linux / macOS和Linux之间的脚本Windows很痛苦,所以我们决定使用Bash for Windows来运行我们的构建.一旦你正确设置了Bash,并且与VS Code的集成很棒,这种方法效果很好.
但是有一个很大的问题:每当你想要在Bash之外更新项目时(使用CMD或PowerShell),你就可以有效地切换你的操作系统,然后你就得到了一个很好的错误来自node-sass说your environment has changed.

由于重建node-sass根本无法工作,我们发现摆脱这个问题的唯一方法是删除或重命名node_modules&再次运行npm install,但它耗费时间/资源.

我们已经看到它看起来像there is a native js alternative但我们想看看是否有人经历过相同的&找到了合适的解决方案.

我们真的没有大量的SASS文件,因此我们不太关心性能(这是使用libSass在C中执行它的主要观点).

注意:我们不能总是在Windows上使用Bash,因为我们在一些运行npm版本的Java / React应用程序中有一些混乱的Maven集成,这将始终在Windows中.

我们在应用程序中使用了Angular 6前端并遇到了同样的问题.我们通过将所需的二进制文件检入存储库并使用不同的Maven配置文件(每个环境/操作系统一个,默认为我们的CI的linux)来设置sass-binary-path到其特定于环境的二进制文件来解决它.但是,它仅在您具有能够设置环境变量的构建系统时才有效.另一个需要注意的是,您必须手动更新二进制文件.
<properties>
    <sass.binary.path.base>${basedir}/node-sass-binaries/</sass.binary.path.base>
</properties>
...
<profile>
  <id>linux</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
    <sass.binary.path>${sass.binary.path.base}/linux-x64-64_binding.node</sass.binary.path>
  </properties>
</profile>
<profile>
  <id>windows</id>
  <properties>
    <sass.binary.path>${sass.binary.path.base}/win32-x64-64_binding.node</sass.binary.path>
  </properties>
</profile>
<profile>
  <id>mac</id>
  <properties>
    <sass.binary.path>${sass.binary.path.base}/darwin-x64-64_binding.node</sass.binary.path>
  </properties>
</profile>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读