我有一个带有以下npm dependancies的grunt项目:
我在VirtualBox VM中创建了一个Ubuntu 12.04 64位服务器(来自Ubuntu主机)并运行以下命令:
sudo apt-get update
sudo apt-get install -y ruby rubygems gcc python make
sudo gem install compass
wget http://nodejs.org/dist/v0.10.15/node-v0.10.15.tar.gz
tar -xzf node-v0.10.15.tar.gz
cd node-v0.10.15/
./configure
make
sudo make install
cd ../
rm -Rf node-v0.10.1
rm node-v0.10.15.tar.gz
sudo npm install -g grunt-cli
据说安装了npm。然后我使用git clone来克隆我在CentOS中使用的grunt项目(它在CentOS中都有效)。不幸的是,当我运行grunt时,尝试使用以下错误运行qunit时失败了:
运行“qunit:dist”(qunit)任务测试 /home/testuser/myproject/test/index.html确定
运行PhantomJS ...错误
为了使此任务正常工作,必须在本地安装PhantomJS 通过NPM。如果您看到此消息,通常这意味着NPM安装 失败了。请提交尽可能详细的问题: https://github.com/gruntjs/grunt-lib-phantomjs/issues警告:找不到PhantomJS。使用--force继续。
因警告而中止。
我甚至从grunt文件夹运行了npm update,但仍然有这个错误。
我错过了什么?
修改的 请注意以下事实:
答案 0 :(得分:5)
您需要从项目的根目录运行npm install
以安装npm依赖项。
[编辑] - 在做了一些研究之后,在基本的Ubuntu 12.04安装上复制了这个问题之后,我终于找到了这个问题。
依赖关系链如下:
grunt-contrib-qunit
>> grunt-lib-phantomjs
>> phantomjs
现在phantomjs
包只安装了本地版本的phantomjs
,并在bin应用程序周围提供了一个JS api包装器。问题是phantomjs
具有某些操作系统级别的依赖关系,如download page中所述:
“......但是,预计系统中可以使用渲染所需的一些基本库(FreeType,Fontconfig)和基本字体文件。”
这就是本地phantomjs安装失败的原因。实际上,错误非常通用,因为安装成功完成,但是phantomjs无法运行。
phantomjs
NPM模块不处理phantomjs
依赖项(因为phantomjs
不是正确的NPM模块)。
要解决Ubuntu 12.04中的问题,您需要通过使用以下命令安装字体包来手动安装phantomjs
依赖项:
sudo apt-get install fontconfig
我已经在'phantomjs'NPM项目上创建了一张故障单,以便在README中添加关于这些依赖关系的注释:https://github.com/Obvious/phantomjs/issues/80
答案 1 :(得分:0)
我刚解决了。
sudo apt-get install phantomjs
运行后它可以正常工作。
我在阅读完这篇文章后发现:https://github.com/gruntjs/grunt-lib-phantomjs/issues/22