无法安装SpookyJS,运行hello.js出现spawn casperjs ENOENT错误求助
spawn casperjs ENOENT错误 这个错误本质是Node.js找不到CasperJS的可执行文件,大概率是CasperJS未全局安装、未加入系统PATH,或者SpookyJS的配置没指定正确路径导致的,给你几个靠谱的解决步骤:
先确认CasperJS是否正确全局安装
SpookyJS依赖CasperJS的全局环境,先执行全局安装命令:npm install -g casperjs
安装完成后在命令行输入casperjs --version,如果能正常输出版本号,说明安装成功;如果报错,那就是npm全局包路径没在系统PATH里,得先解决这个。检查并配置系统环境变量PATH
Windows系统中,npm全局包的默认路径是C:\Users\你的用户名\AppData\Roaming\npm(你的路径就是C:\Users\User1\AppData\Roaming\npm),把这个路径添加到系统环境变量的PATH中。添加完后一定要重启命令行,再执行casperjs --version验证是否生效。手动指定CasperJS路径(全局安装仍无效时)
如果全局安装后还是报错,可以在你的hello.js里初始化Spooky时,手动指定CasperJS的完整路径:var Spooky = require('spooky'); var spooky = new Spooky({ child: { // 替换成你实际的casperjs.cmd路径 command: 'C:\\Users\\User1\\AppData\\Roaming\\npm\\casperjs.cmd' }, casper: { logLevel: 'debug', verbose: true } }, function (err) { if (err) { const e = new Error('Failed to initialize SpookyJS'); e.details = err; throw e; } // 这里写你的SpookyJS业务代码 spooky.start('http://example.com'); spooky.then(function() { this.echo('Hello, ' + this.getTitle()); }); spooky.run(); });重新安装SpookyJS依赖
删掉项目里的node_modules文件夹,然后重新执行npm install,确保所有依赖都安装完整。另外检查你的package.json里SpookyJS的依赖版本是否正确,比如:{ "dependencies": { "spooky": "^0.2.5" } }
注意:Windows系统下CasperJS的可执行文件是casperjs.cmd,路径里一定要带上这个后缀,不然会找不到文件。
内容的提问来源于stack exchange,提问作者user1584421

