2015-02-10 35 views
2

我有一个特拉维斯建立运行摩卡测试工作,但是构建与错误而失败:特拉维斯-CI找不到相关模块需要

Error: Cannot find module './sources/reddit'

我的文件树如下

feeds/ 
    sources/ 
      Reddit.js 
    Feeds.js 
app.js 

在Feeds.js我做

var https = require('https'), 
    q  = require('q'), 
    Reddit = require('./sources/reddit'); 

然而,似乎正在加载一个错误标记。

回答

7

这个错误是因为我引用./sources/redditreddit为小写,文件系统上文件为Reddit,大写为R

Mac OSX处理大小写敏感,Linux不。

+3

我会说的相反:Linux处理大小写敏感,Mac OSX不会...... – 2015-10-27 19:55:10

0

我也遇到过这个问题,但大写问题很难发现。

当我第一次将文件检入git时,它被命名为container.js(小写“c”)。我随后将其更改为Container.js,因此它反映了我的文件系统上的大写名称。

但是,Git在大小写不敏感的操作系统上没有检测到病例更改,所以每次运行travis-ci时,它都会对小写名称进行运行,从而导致构建失败。 (有关如何正确执行此操作的详细信息,请参见Changing capitalization of filenames in Git

我解决了这个问题,只需重命名文件并更改所有引用,以便git获取新名称。