使用带有casperjs的require会返回“找不到模块”错误

时间:2013-08-21 01:19:11

标签: require casperjs

我正在关注writing a module with casperjs上的文档,但我收到了错误。

代码,直接来自文档:

// my module, stored in universe.js
// patching phantomjs' require()
var require = patchRequire(require);

// now you're ready to go
var utils = require('utils');
var magic = 42;
exports.answer = function() {
    return utils.format("it's %d", magic);
};

调用脚本:

var universe    = require("./universe");
var casper      = require("casper").create();


console.log(universe.answer());

casper.test.begin("Home Page", 1, function suite(test) {

});

但是我收到以下错误:

casperjs test testStage.js
Test file: testStage.js
CasperError: Can't find module ./universe
  /usr/local/Cellar/casperjs/1/libexec/bin/bootstrap.js:214 in patchedRequire
  /Users/smosk/Google Drive/source/nest/testStage.js:1
FAIL CasperError: Can't find module ./universe
#    type: error
#    file: testStage.js
#    subject: false
#    error: "CasperError: Can't find module ./universe"
#    stack: in patchedRequire() in /usr/local/Cellar/casperjs/1/libexec/bin/bootstrap.js:214
in anonymous() in testStage.js:1
FAIL 1 test executed in 0.031s, 0 passed, 1 failed, 0 dubious, 0 skipped.

Details for the 1 failed test:

In testStage.js
  Untitled suite in testStage.js
    error: CasperError: Can't find module ./universe

还尝试先定义casper:

var casper      = require("casper").create();
var universe    = require("./universe");

但这只是导致了

Test file: testStage.js
CasperError: Can't find module ./universe
  /usr/local/Cellar/casperjs/1/libexec/bin/bootstrap.js:214 in patchedRequire
  /Users/smosk/Google Drive/source/nest/testStage.js:2

4 个答案:

答案 0 :(得分:5)

您应该尝试升级到最新的CasperJS主版本,因为我所做的pull request应该可以解决您遇到的问题。

但是,如果您不想升级,您还可以尝试使用以下内容运行CasperJS:

casperjs test ./testStage.js

答案 1 :(得分:4)

对于像我这样可能是白痴的人,你可能想确保你在你的cmd中使用casperjs而不是phantomjs

答案 2 :(得分:1)

有类似的问题。我似乎是由https://github.com/n1k0/casperjs/issues/587的合并造成的。回到1d1e83ba3c9241623解决了我的问题

答案 3 :(得分:1)

我花了最近2个小时试图调试此问题:

C:\casperjs>casperjs
CasperError: Can't find module cli

  C:\casperjs\bin\bootstrap.js:262 in patchedRequire
  C:\casperjs\bin\bootstrap.js:375
  C:\casperjs\bin\bootstrap.js:395

我使用的是PhantomJS 1.9.0,但我发现我必须升级到1.9.2并立即开始工作。我希望这对其他人有帮助。