grunt-contrib-qunit是基于phantomjs .exe,所以会首先安装 phantomjs.exe,安装是使用npm上注册的模块phantomjs来安装的,该模块实现了下载,及解压提取phantomjs.exe安装包的功能,并返回了phantomjs.exe安装的绝对路径,phantomjs.exe默认是安装在: phantomjs模块的当前路径 / lib / phantomjs / phantomjs.exe。
当然依赖的模块安装过程是自动安装的,但是下载phantomjs.exe安装包不成功。在phantomjs模块下你可以看到 install.js文件,该文件实现了下载及解压提取的功能,比如你可以看到它下载的地址:
var downloadUrl = 'http://cdn.bitbucket.org/ariya/phantomjs/downloads/phantomjs-' + helper.version + '-'
当然后边还有根据不同的平台增加不同的后缀。安装时会提示完整的下载地址,及下载保存的地址(tmpDir / phantomjs / )tmpDir --电脑用户的暂存目录。
当下载不成功导致安装失败时,你可以去官网手动下载安装包,放到 tmpDir / phantomjs下,然后再npm install grunt-contrib-qunit就会成功。
如果你的全局模块安装目录下已经有 phantomjs.exe文件(eg: C:\Users\yangyongpeng\AppData\Roaming\npm\phantomjs.exe),则phantomjs.exe安装包就不会再下载安装了。
参考:
https://www.npmjs.org/package/phantomjs