Я установил nodejs 0.10.15 на debian 6. Используя npm, я установил:
sudo npm install grunt-cli -g
Я также выполнил установку npm в своем локальном тестовом каталоге (загружая необходимые зависимости в каталог node_modules), который содержит следующий файл package.json:
{
"name": "sample-name",
"version": "1.4.0",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-qunit": ">0.0.0",
"grunt-qunit-istanbul": ">0.0.0"
}
}
вот вывод при установке phantomjs:
...
Writing location.js file
Done. Phantomjs binary available at /home/myuser/Test/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs
Done. Phantomjs binary available at /home/myuser/Test/node_modules/grunt-qunit-istanbul/node_modules/grunt-lib-phantomjs-istanbul/node_modules/phantomjs/lib/phantom/bin/phantomjs
[email protected] node_modules/grunt
├── [email protected]
...
Но когда я запускаю тест ворча из тестового каталога, я получаю:
Running PhantomJS...ERROR
>> In order for this task to work properly, PhantomJS must be installed locally
>> via NPM. If you're seeing this message, generally that means the NPM install
>> has failed. Please submit an issue providing as much detail as possible at:
>> https://github.com/gruntjs/grunt-lib-phantomjs/issues
Warning: PhantomJS not found. Use --force to continue.
Если я запускаю скрипт phantomjs, установленный в предыдущем указанном месте, ничего не происходит, я получаю код выхода 127, хотя (указывая на проблему PATH: http://tldp.org/LDP/abs/html/exitcodes.html). Если я кот сценарий phantomjs bash выглядит так:
#!/usr/bin/env node
var path = require('path')
var spawn = require('child_process').spawn
var binPath = require(path.join(__dirname, '..', 'lib', 'phantomjs')).path
var args = process.argv.slice(2)
// For Node 0.6 compatibility, pipe the streams manually, instead of using
// '{ stdio: 'inherit' }'.
var cp = spawn(binPath, args)
cp.stdout.pipe(process.stdout)
cp.stderr.pipe(process.stderr)
cp.on('exit', process.exit)
process.on('SIGTERM', function() {
cp.kill('SIGTERM')
process.exit(1)
})
Как я понимаю, это означает, что phantomjs выполняется внутри узла. Если я запустил узел, введите путь var, который я получаю:
:~$ env node
> var path = require('path')
undefined
>
(что я понимаю по умолчанию: node.js отображает "undefined" на консоли)
Любые предложения по дальнейшему отладке этой проблемы?