NPM安装:检查特定的应用程序安装

问题描述:

我试图写一个角度应用单元测试和现在的描述像因果报应单元测试所有需要的软件包工作,phantomjs等操作系统:Ubuntu的14NPM安装:检查特定的应用程序安装

问题是,Phantom.js不不安装在系统(bug description)“libfontconfig”的工作,因为我知道这是不可能与安装:

npm install --save-dev libfontconfig 

如何输出给用户警告,某些安装当他试图做时是必需的:

npm install 

UPD

我决定提供我的情况更具体的细节。所以,我要使用Karma和Phantom.js来测试我的应用程序。这里有一个项目的所有devDependencies:

"devDependencies": 
{ 
"grunt": "~0.4.5", 
"grunt-contrib-less": "~1.1.0", 
"grunt-contrib-watch": "~0.6.1", 
"jit-grunt": "~0.9.1", 
"angular-route": "~1.4.8", 
"angular": "~1.4.8", 
"moment": "~2.10.6", 
"jquery": "~1.11.3", 
"bootstrap": "~3.3.6", 
"angularjs-datepicker": "~0.2.16", 
"phantomjs": "~1.9.8", 
"karma": "^0.12.16", 
"karma-jasmine": "~0.1.0", 
"karma-phantomjs-launcher": "~0.2.3" 
} 

当我尝试用噶运行单元测试:

node node_modules/karma/bin/karma start test/karma.conf.js 

我收到以下错误:

ERROR [phantomjs.launcher]: /vagrant/node_modules/phantomjs/lib/phantom/bin/phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory 

所以,我的问题是:

1)我应该检查这个库的存在,或者我可以在README中描述它吗?

2)如果我应该检查,我该怎么做?使用bash是一个好主意吗?据我所知,在这种情况下它不会在Windows机器上工作。

您应该能够使用您的package.json的scripts

https://docs.npmjs.com/misc/scripts

将简单地需要创建一个脚本的NodeJS,你会呼吁安装后,会做的检查为libfontconfig

+0

谢谢你的回答,我有一个想法,但我仍然不明白如何从nodeJS获取系统中安装的应用程序的信息? – Tamara

+0

您需要在您在安装后字段中设置的脚本中执行与此http://*.com/a/15303236类似的操作。 – Kody

+0

好吧,我试过这种方法,但是看起来我无法检查应用程序是否安装在操作系统中 - 我只能在此处检查npm模块。而“libfontconfig”不是一个npm模块。也许可以在这里使用一些bash脚本? – Tamara