使用带有casperjs的require返回"找不到模块"erorr

Sim*_*mon 5 require casperjs

我正在关注用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);
};
Run Code Online (Sandbox Code Playgroud)

和调用脚本:

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


console.log(universe.answer());

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

});
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

还尝试先定义casper:

var casper      = require("casper").create();
var universe    = require("./universe");
Run Code Online (Sandbox Code Playgroud)

但这只是导致了

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
Run Code Online (Sandbox Code Playgroud)

hex*_*xid 5

您应该尝试升级到最新的CasperJS主构建,因为我提出的拉取请求应该可以解决您遇到的问题.

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

casperjs test ./testStage.js
Run Code Online (Sandbox Code Playgroud)