Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在需要节点模块时强制执行区分大小写的字符串匹配_Javascript_Node.js_Heroku - Fatal编程技术网

Javascript 在需要节点模块时强制执行区分大小写的字符串匹配

Javascript 在需要节点模块时强制执行区分大小写的字符串匹配,javascript,node.js,heroku,Javascript,Node.js,Heroku,我注意到我对heroku的一些推送失败,因为我的package.json中的依赖项的大小写与我在javascript中实际需要的不匹配。例如,在package.json中,我可能有一个名为“somepackage”的东西,但在我的javascript文件中,我有require(“somepackage”)。在本地,这很好,但在heroku上却失败了。是否有一个节点设置来强制区分大小写,以便我在本地失败?请参阅github上的讨论 npm包的首选命名约定是“全小写”。您可能应该在代码中进行必要的更

我注意到我对heroku的一些推送失败,因为我的package.json中的依赖项的大小写与我在javascript中实际需要的不匹配。例如,在package.json中,我可能有一个名为“somepackage”的东西,但在我的javascript文件中,我有
require(“somepackage”)
。在本地,这很好,但在heroku上却失败了。是否有一个节点设置来强制区分大小写,以便我在本地失败?

请参阅github上的讨论

npm包的首选命名约定是“全小写”。您可能应该在代码中进行必要的更改以遵循此约定

混合使用案例会带来跨平台问题,这主要是因为linux具有区分大小写的文件系统,而windows和macOS默认具有不区分大小写的文件系统

“全小写”惯例是为了避免你所描述的意外


如果您正在使用Mac OS X,您可以按照

上的第一个答案检查文件系统的配置。我编写了一个NPM模块来执行此操作,并进行检查以确保代码中引用的所有依赖项都反映在package.json文件中:

nodejs dep check


当然,这样做的目的是为了节省您的时间,这样您就不会在事先没有测试/检查的情况下初始化构建或遇到运行时错误。

;你可以在Heroku上看到它,但不能在本地看到,因为OSX/Windows没有看到区别,但是Heroku在Ubuntu(linux)上运行,而Ubuntu(linux)是这样的。这是今天更新的,它相对较新,但比其他尝试这样做的模块要好