我发现我们在Windows上的开发人员正在检入可正常工作的代码,即使它具有文件名大小写错误,例如:
import speakers.js
代替
import Speakers.js
这是正确的。在Windows上可以使用,在Mac上则不能。确保Windows开发人员不签入这样的问题代码的最佳方法是什么?
答案 0 :(得分:2)
Linters是验证您的源代码符合某些规则的程序。短号可能会禁止使用var
关键字,或者可能会强制在行的末尾出现分号。
在javascript中,the most common linter is eslint。设置起来相当容易,大多数代码编辑器都能很好地使用它。
有一个特定的eslint插件可以检查在require
和import
调用中eslint plugin dependencies中是否执行了某些规则。它强制文件存在或文件名不区分大小写,因此此插件应为您解决问题。 (但是,我从来没有自己配置过。我相信大多数来自javascript框架的cli应用都将其包含在默认配置中)。
如果设置正确,当开发人员尝试在导入中使用Mayus或需要句子时,开发人员将在编辑器中看到警告,并且如果运行命令eslint
将失败。
使用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
建议:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux