spookyjs hello.js не может распознать модуль tiny-jsonrpc

Я скопировал пример кода с веб-страницы spookyjs npm:

try {
    var Spooky = require('spooky');
} catch (e) {
    Spooky = require('node_modules/spooky');
}

var spooky = new Spooky({
    child: {
        transport: 'http'
    },
    casper: {
        logLevel: 'debug',
        verbose: true
    }
}, function (err) {
    if (err) {
        e = new Error('Failed to initialize SpookyJS');
        e.details = err;
        throw e;
    }

    spooky.start(
        'http://en.wikipedia.org/wiki/Spooky_the_Tuff_Little_Ghost');
    spooky.then(function () {
        this.emit('hello', 'Hello, from ' + this.evaluate(function () {
                return document.title;
            }));
    });
    spooky.run();
});

spooky.on('error', function (e, stack) {
    console.error(e);

    if (stack) {
        console.log(stack);
    }
});


// Uncomment this block to see all of the things Casper has to say.
// There are a lot.
// He has opinions.
spooky.on('console', function (line) {
    console.log(line);
});


spooky.on('hello', function (greeting) {
    console.log(greeting);
});

spooky.on('log', function (log) {
    if (log.space === 'remote') {
        console.log(log.message.replace(/ \- .*/, ''));
    }
});
But it throws an error:

Error: Cannot find module 

'/home/svet/WebstormProjects/nodejsStudy/studyFiles/node_modules/spooky/lib/../node_modules/tiny-jsonrpc/lib/tiny-jsonrpc'

[ { file: 'phantomjs://platform/bootstrap.js',
    line: 299,
    function: 'require' },
  { file: 'phantomjs://platform/bootstrap.js',
    line: 263,
    function: 'require' },
  { file: 'phantomjs://platform/http-server.js',
    line: 6,
    function: '' } ]
{ Error: Child terminated with non-zero exit code 1
    at Spooky.<anonymous> 
(/home/svet/WebstormProjects/nodejsStudy/studyFiles/node_modules/spooky/lib/spooky.js:210:17)

    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:194:7)
    at Process.ChildProcess._handle.onexit 
(internal/child_process.js:215:12) details: { code: 1, signal: null } }

Модуль tiny-jsonrpc уже установлен


person Светозар    schedule 30.04.2017    source источник


Ответы (1)


Вы должны установить phantomjs перед выполнением этого сценария.
Вы можете установить phantomjs, используя npm: npm install phantomjs

person Oscar Martínez    schedule 04.07.2017