如何在Ubuntu服务器12.04 64中安装grunt-contrib-qunit?

时间:2013-07-26 20:32:59

标签: ubuntu-12.04 gruntjs qunit

我有一个带有以下npm dependancies的grunt项目:

  • 咕噜-的contrib-qunit
  • 咕噜-的contrib罗盘
  • 咕噜-的contrib-jshint

我在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,但仍然有这个错误。

我错过了什么?

修改的 请注意以下事实:

  1. 此项目在CentOS中无错误地工作。
  2. 此项目使用--save-dev
  3. 在本地安装了所有插件
  4. 通过手动安装每个依赖项来覆盖本地安装并不能解决此问题。
  5. 手动卸载并重新安装每个依赖项并不能解决此问题。

2 个答案:

答案 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