在Node,JavaScript案例问题中,Windows vs Mac

时间:2019-03-08 23:17:19

标签: javascript node.js

我发现我们在Windows上的开发人员正在检入可正常工作的代码,即使它具有文件名大小写错误,例如:

import speakers.js

代替

import Speakers.js

这是正确的。在Windows上可以使用,在Mac上则不能。确保Windows开发人员不签入这样的问题代码的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

使用短绒棉布

Linters是验证您的源代码符合某些规则的程序。短号可能会禁止使用var关键字,或者可能会强制在行的末尾出现分号。

在javascript中,the most common linter is eslint。设置起来相当容易,大多数代码编辑器都能很好地使用它。

有一个特定的eslint插件可以检查在requireimport调用中eslint plugin dependencies中是否执行了某些规则。它强制文件存在或文件名不区分大小写,因此此插件应为您解决问题。 (但是,我从来没有自己配置过。我相信大多数来自javascript框架的cli应用都将其包含在默认配置中)。

如果设置正确,当开发人员尝试在导入中使用Mayus或需要句子时,开发人员将在编辑器中看到警告,并且如果运行命令eslint将失败。

使用javascript钩子确保没有无效提交被推送到存储库中

使用git钩子,您可以强制eslint(或任何其他linter或命令)必须通过才能将提交添加到存储库。

This article explain how to do this with javascript(免责声明,我是作者),并提供了有关此事的背景信息。

还有the husky package,可以轻松地设置git钩子以防止错误的提交。使用husky的好处是,挂钩可以推送到存储库中,因此项目中的新开发人员无需手动设置其.git/hooks/文件。

答案 1 :(得分:1)

这绝对是操作系统问题。尚未尝试,但您可以激活Windows区分大小写的选项,以避免导入错误。您必须执行以下命令:

fsutil.exe file SetCaseSensitiveInfo C:\folder\path enable

建议:

  • 应该启用Linux子系统: 在PowerShell中以管理员身份运行以下命令以启用此可选功能:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  • 它不会影响子文件夹,因此需要递归脚本