Node.js Travis CI找不到所需的相对模块
我有一个Travis构建作业正在运行mocha测试,但是构建失败并出现错误:Node.js Travis CI找不到所需的相对模块,node.js,travis-ci,commonjs,Node.js,Travis Ci,Commonjs,我有一个Travis构建作业正在运行mocha测试,但是构建失败并出现错误: 错误:找不到模块'./sources/reddit' 我的文件树如下 feeds/ sources/ Reddit.js Feeds.js app.js 在Feeds.js中,我正在做 var https = require('https'), q = require('q'), Reddit = require('./sources/re
错误:找不到模块'./sources/reddit'
我的文件树如下
feeds/
sources/
Reddit.js
Feeds.js
app.js
在Feeds.js中,我正在做
var https = require('https'),
q = require('q'),
Reddit = require('./sources/reddit');
然而,它似乎在标记加载时出错。此错误是因为我引用了
/sources/reddit
和reddit
作为小写,在文件系统上,文件是reddit
和大写的R
MacOSX很好地处理了区分大小写的问题,而Linux则没有。我也遇到了这个问题,但是大写问题更难发现 当我第一次将文件签入
git
时,它被命名为container.js
(小写字母“c”)。我随后将其更改为Container.js
,因此它在我的文件系统中反映了大写名称
然而,Git并没有在不区分大小写的OSs上检测到大小写的变化,所以每次travis ci运行时,它都会使用小写名称,因此构建失败。(有关如何正确执行此操作的详细信息,请参阅)
我只需重命名文件并更改所有引用即可解决此问题,这样git就可以使用新名称。要完成其他人的回答,另一种情况是,您可能会在CI上遇到类似问题,即git会忽略您所需的文件。因此,在本地,有tthere,但不是Travis构建时
因此,请确保您的
.gitignore
中没有阻止签入这些文件的规则。我在MacOS上遇到了一个疯狂的不匹配情况:
- 本地目录名称小写:
(使用Finder、terminal和VS代码进行检查)landing
- 在GitHub上,第一个字母是大写的:
Landing
- 将文件/dir重命名为类似于
的其他名称并提交更改file1
- 重新命名并提交更改