【问题标题】:Using require with casperjs returns "Can't find module" error将 require 与 casperjs 一起使用会返回“找不到模块”错误
【发布时间】:2013-08-21 01:19:10
【问题描述】:

我正在关注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

【问题讨论】:

    标签: require casperjs


    【解决方案1】:

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

    但是,如果您不想升级,也可以尝试使用以下命令运行 C​​asperJS:

    casperjs test ./testStage.js
    

    【讨论】:

      【解决方案2】:

      对于可能像我这样的白痴的其他人,您可能需要确保在您的 cmd 中使用 casperjs 而不是 phantomjs

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          我刚刚花了 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,它立即开始工作。我希望这对其他人有帮助。

          【讨论】:

          • 所以结论是,... phantomJS 1.9.2 仅适用于 casperjs 1.1 而不是它们的较低版本? @Steve Rukuts
          • 我很抱歉@gumuruh,但我现在不确定。我认为这是对的,但我已经有一段时间没有使用 CasperJS 了。如果您查看日期,您会发现相关帖子已经有将近 3 年的历史了,所以我当然会查看更新的文档。
          猜你喜欢
          • 1970-01-01
          • 2012-03-16
          • 2021-04-26
          • 1970-01-01
          • 2018-12-24
          • 2022-10-08
          • 1970-01-01
          • 2023-02-04
          • 1970-01-01
          相关资源
          最近更新 更多