@H_
502_0@
我们是一个由大约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,但它耗费时间/资源.
我们已经看到它看起来像@L_502_4@但我们想看看是否有人经历过相同的&找到了合适的解决方案.
我们真的没有大量的SASS文件,因此我们不太关心性能(这是使用libSass在C中执行它的主要观点).
注意:我们不能总是在Windows上使用Bash,因为我们在一些运行npm版本的Java / React应用程序中有一些混乱的Maven集成,这将始终在Windows中.
我们在应用程序中使用了Angular 6前端并遇到了同样的问题.我们通过将所需的二进制
文件检入存储库并使用不同的Maven@R_
301_382@(每个环境/操作系统一个,默认为我们的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>