我可以强制node.js要求区分大小写吗?

由于我的Mac有一个不区分大小写的文件系统,因此在本地运行testing时,相关的input错误不会被捕获,但是它们在运行Linux的构build服务器上失败。

例如: require('./mymodule')在Lion上运行时会find./myModule.js ,而在Linux上则不会。

因为我想让本地testing失败,为了不打破在服务器上的构build,我正在寻找一种方法,使node.js要求更严格,因为它会引发错误,如果它的文件名是不确切(即在套pipe上有差异)。

有谁知道一个办法来完成这个?

编辑

由于这个问题似乎没有很好的解决scheme,我创造了valiquire 。

此工具validation整个nodejs项目中的所有需求,同时确保套pipe是正确的。

由于您的hfs文件系统不区分大小写,所以在文件系统库级别查找'文件名'将与'文件名'相匹配,因此node.js将表现相同。 所以根据定义,没有解决方法。

但在重新格式化的价格,你可以改变你的FS格式使用hfs区分大小写。

http://www.coriolis-systems.com/iPartition.php在这个线程中提到: https : //superuser.com/questions/380330/mac-convert-from-case-sensitive-to-case-insensitive-file -系统

在不更改操作系统文件分区的情况下,您可以使用自动检测这些更改的打包程序,我个人使用webpack 2.它在文件解析时发出警告,但情况不同。 它不会阻止编译在OSX / Windows上,但你会有一个提示。 另外有一个捆绑器是当今js开发者的一项重要资产

这种冒失的,不推荐的方法是,要求和强制某种情况,或尝试尽可能多的情况下,但这可能是非常丑陋的做,造成不良的表现,没有说到潜在的危险,加载错误的文件,如果有情况下,重命名文件,旧文件不清理

如果你使用webpack,请查看https://github.com/Urthen/case-sensitive-paths-webpack-plugin

刚刚安装它为我们的开发版本。 如果你在这个问题上,可能已经救了我们多次下来,这可能已经发生了

安装

 npm install --save-dev case-sensitive-paths-webpack-plugin 

用法

 const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); const webpackConfig = { plugins: [ new CaseSensitivePathsPlugin(), // other plugins ... ], // other webpack config ... }; 

总是使用小写字母表示文件名,那么你就不必关心文件系统是否支持它。

让我想起人们过去在网址中使用空格的时候。