2017-04-24 50 views
3

在我的Node.js代码中,我在Linux上运行时遇到以下错误,但在我的窗口机器上运行时没有。我不改变这两者之间的文件结构。为什么会发生?为什么这种依赖性错误发生在Linux而不是Windows上?

Error: Cannot find module './app/helpers/textHelper.js' 
    at Function.Module._resolveFilename (module.js:470:15) 
    at Function.Module._load (module.js:418:25) 
    at Module.require (module.js:498:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/home/bdu/work/srid_tool/server.js:3:17) 
    at Module._compile (module.js:571:32) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:488:32) 
    at tryModuleLoad (module.js:447:12) 
at Function.Module._load (module.js:439:3)” 
+0

检查路径和文件名的大小写,或者某些模块没有在Linux中正确安装。 – jfriend00

回答

3

这里最典型的回答是,路径的大小写是不完全字符串中的一样,是在文件系统中。大多数* nix文件系统区分大小写; Windows的标准文件系统不是。

因此,例如,如果实际目录是app/Helpers,或者实际文件名是texthelper.js,那么该字符串不会区分大小写。

+1

正是这个问题,谢谢! –

+0

@ChrisChevalier:作为一般指南,文件名总是以区分大小写的方式处理 - 它是唯一可以在任何地方工作的跨平台方式(不可否认,Windows95上有潜在的问题,在Windows98中修复,在Windows3.1中无法运行,但没有人运行那些操作系统了) – slebetman

相关问题