需要节点模块

时间:2015-05-11 06:46:44

标签: javascript node.js heroku

我注意到我对heroku的一些推动失败了,因为我的package.json中的依赖大写与我在javascript中实际需要的大写不匹配。例如,在package.json中,我可能有一些名为" somepackage",但在我的javascript文件中我有require("somePackage")。在本地,这工作正常,但在heroku上它失败了。是否有节点设置来强制区分大小写,以便它可以在本地为我失败?

2 个答案:

答案 0 :(得分:2)

请参阅github上的讨论https://github.com/npm/npm/issues/3914

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

混合案例带来跨平台问题主要是因为linux有一个区分大小写的文件系统,而Windows和macOS默认情况下有一个不区分大小写的文件系统。

"全小写"惯例是为了避免诸如你所描述的意外之类的惊喜。

如果您使用的是Mac OS X,可以按照https://apple.stackexchange.com/questions/22297/is-bash-in-osx-case-insensitive上的第一个答案检查文件系统的配置方式

答案 1 :(得分:1)

我写了一个NPM模块,它执行此操作并检查以确保代码中引用的所有依赖项都反映在package.json文件中:

的NodeJS-DEP检查

https://www.npmjs.com/package/nodejs-dep-check

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