Gruntjs 因果报应+;幻影+;不能上网

Gruntjs 因果报应+;幻影+;不能上网,gruntjs,npm,phantomjs,offline,karma-runner,Gruntjs,Npm,Phantomjs,Offline,Karma Runner,我需要在没有互联网接入的持续集成服务器上使用PhantomJS运行Karma测试。每个构建都从运行npm安装开始——没有注册表,然后运行grunt Grunt Karma配置为单次运行(singleRun:true) 除了幻影,一切都很好。即使phantomjs包在npm缓存中,它也会尝试直接从bitbucket.org下载实际的二进制文件(.exe),但显然由于无法访问inet而失败 我尝试全局预安装PhantomJS包(npm安装-g PhantomJS)。现在二进制文件在脱机模式下解析,测

我需要在没有互联网接入的持续集成服务器上使用PhantomJS运行Karma测试。每个构建都从运行
npm安装开始——没有注册表
,然后运行
grunt
Grunt Karma配置为单次运行(
singleRun:true

除了幻影,一切都很好。即使phantomjs包在npm缓存中,它也会尝试直接从bitbucket.org下载实际的二进制文件(.exe),但显然由于无法访问inet而失败

我尝试全局预安装PhantomJS包(
npm安装-g PhantomJS
)。现在二进制文件在脱机模式下解析,测试运行pass和pass,一切看起来都很好,但是。。。Karma测试套件现在永远不会结束(可能是因为PhantomJS永远不会退出),直到我点击Ctrl+C.(只有当我使用
npm install-g显式地全局安装PhantomJS包时才会发生…
。如果我不这样做,并让它自动从BitBucket下载,它就会正常运行)。 PhantomJS的版本在这两种情况下都是相同的,我仔细检查了一下

我尝试了不同版本的PhantomJS(1.9.7、1.9.6、1.9.2)和Karma(0.11、0.10)——没有区别

这是我的包。json

"devDependencies": {
    "grunt": "~0.4",
    "karma": "~0.10",
    "grunt-karma": "~0.6"
}
下面是我看到的,如果我运行Karma,让PhantomJS安装了'-g':

> npm install -g phantomjs
Done. Phantomjs binary available at .....
phantomjs@1.9.7-1 C:\Users\.....\npm\node_modules\phantomjs

> karma start --single-run
INFO [karma]: Karma v0.10.9 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Windows 7)]: Connected on socket JjD-wPAWrUeuz1NBTw02
LOG: 'JQMIGRATE: Logging is active'
PhantomJS 1.9.7 (Windows 7): Executed 60 of 60 SUCCESS (0.362 secs / 0.204 secs)
WARN [launcher]: PhantomJS was not killed in 2000 ms, sending SIGKILL.
_
(并在继续Ctrl+C构建后挂起)

我不明白为什么会这样

问题

  • 它与安装带有'-g'的幻影包有什么关系
  • 什么是正确的方式来配置没有internet访问的环境,以便使用PhantomJS运行Karma测试
谢谢大家!

根据,您可以在运行
npm install
时将
PHANTOMJS_CDNURL
环境变量设置为指向不同的(本地)HTTP端点

PHANTOMJS_CDNURL=http://some.server.here/downloads npm install phantomjs
默认值为

此外,如果您将PhantomJS放在您的路径上,它应该尝试使用它