Jquery 为Cloud Foundry部署添加.js脚本文件

Jquery 为Cloud Foundry部署添加.js脚本文件,jquery,node.js,npm,cloud-foundry,jsdom,Jquery,Node.js,Npm,Cloud Foundry,Jsdom,我有一些使用jsdom的node.js代码,我需要jquery.min.js文件用于后端css选择器。本地运行良好,但如果我在api.cloudfoundry.com上使用vmc push部署,它会给我502坏网关nginx 我假设必须在package.json中声明所有依赖项,如下所示 但是,我不知道如何包含jquery.min.js。现在它位于/lib文件夹中,而不是/node\u modules文件夹中(因为它不是节点模块) 有人能帮助我如何为CloudFoundry包含正确的依赖项和其他

我有一些使用
jsdom
的node.js代码,我需要
jquery.min.js
文件用于后端css选择器。本地运行良好,但如果我在
api.cloudfoundry.com
上使用
vmc push
部署,它会给我502坏网关nginx

我假设必须在package.json中声明所有依赖项,如下所示

但是,我不知道如何包含
jquery.min.js
。现在它位于
/lib
文件夹中,而不是
/node\u modules
文件夹中(因为它不是节点模块)

有人能帮助我如何为CloudFoundry包含正确的依赖项和其他额外的.js文件吗

更新1:

这是我删除一堆东西后的代码。如果我注释掉了
jsdom.env
,则没有错误

var port = (process.env.VMC_APP_PORT || 3000);
var host = (process.env.VCAP_APP_HOST || 'localhost');
var http = require('http');

var request = require('request'),
    jsdom = require('jsdom');

http.createServer(function (req, res) {
  request({ uri:'http://www.google.com' }, function (error, response, body) {
    if (error && response.statusCode !== 200) {
      console.log('Error when contacting the url')
    }

    jsdom.env({
      html: body,
      scripts: [
        'lib/jquery.min.js'
      ]
    }, function (err, window) {
    });

    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write(body);
    res.end('\n');

  });

}).listen(port, host);
以下是我在使用hp myapp时看到的
vmc日志

Using manifest file manifest.yml

Getting logs for hp-myapp #0... OK

Reading logs/staging.log... OK
[2012-12-18 03:06:27] Setting up temporary directories
[2012-12-18 03:06:27] Downloading application
[2012-12-18 03:06:27] Unpacking application
[2012-12-18 03:06:27] Staging application
[2012-12-18 03:06:28] # Logfile created on 2012-12-18 03:06:28 +0000 by logger.r
b/25413
[2012-12-18 03:06:28] Skipping npm support: npm-shrinkwrap.json is not provided
[2012-12-18 03:06:28] Creating droplet
[2012-12-18 03:06:29] Uploading droplet
[2012-12-18 03:06:30] Done!

Reading logs/stderr.log... OK

/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b32b79777356c8d63/app/node_mod
ules/jsdom/lib/jsdom.js:178
    features   = JSON.parse(JSON.stringify(window.document.implementation._fea
                                                          ^
TypeError: Cannot read property 'implementation' of undefined
    at exports.env.exports.jsdom.env.processHTML (/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b32b79777356c8d63/app/node_modules/jsdom/lib/jsdom.js:178:59
)
    at Object.exports.env.exports.jsdom.env (/var/vcap/data/dea/apps/hp-myapp-0-
5bda6049e33af03b32b79777356c8d63/app/node_modules/jsdom/lib/jsdom.js:269:5)
    at Request._callback (/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b32b
79777356c8d63/app/app.js:23:9)
    at Request.init.self.callback (/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e3
3af03b32b79777356c8d63/app/node_modules/request/main.js:122:22)
    at Request.EventEmitter.emit (events.js:91:17)
    at Request.<anonymous> (/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b3
2b79777356c8d63/app/node_modules/request/main.js:661:16)
    at Request.EventEmitter.emit (events.js:115:20)
    at IncomingMessage.Request.start.self.req.self.httpModule.request.buffer (/v
ar/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b32b79777356c8d63/app/node_modul
es/request/main.js:623:14)
    at IncomingMessage.EventEmitter.emit (events.js:115:20)
    at IncomingMessage._emitEnd (http.js:366:10)

Reading logs/stdout.log... OK
使用清单文件manifest.yml
正在获取hp myapp 0的日志。。。好啊
正在读取日志/staging.log。。。好啊
[2012-12-18 03:06:27]设置临时目录
[2012-12-18 03:06:27]下载应用程序
[2012-12-18 03:06:27]开箱申请
[2012-12-18 03:06:27]登台申请
[2012-12-18 03:06:28]#logger于2012-12-18 03:06:28+0000创建的日志文件。r
b/25413
[2012-12-18 03:06:28]跳过npm支持:未提供npm-shrinkwrap.json
[2012-12-18 03:06:28]制造水滴
[2012-12-18 03:06:29]上传液滴
[2012-12-18 03:06:30]完成!
正在读取日志/stderr.log。。。好啊
/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b32b79777356c8d63/app/node_mod
ules/jsdom/lib/jsdom.js:178
features=JSON.parse(JSON.stringify(window.document.implementation.)
^
TypeError:无法读取未定义的属性“实现”
在exports.env.exports.jsdom.env.processHTML(/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b32b79777356c8d63/app/node_modules/jsdom/lib/jsdom.js:178:59
)
在Object.exports.env.exports.jsdom.env(/var/vcap/data/dea/apps/hp-myapp-0-
5bda6049e33af03b32b79777356c8d63/app/node_modules/jsdom/lib/jsdom.js:269:5)
应请求。_回调(/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e33af03b32b
79777356c8d63/app/app.js:23:9)
在Request.init.self.callback(/var/vcap/data/dea/apps/hp-myapp-0-5bda6049e3
3af03b32b79777356c8d63/app/node_modules/request/main.js:122:22)
at Request.EventEmitter.emit(events.js:91:17)

应请求。

window.document将在Cloud Foundry中返回null,因为它依赖于服务器上存在的实际浏览器dom。

我决定使用它


那一个很好。

你能在调用“vmc日志[appname]”时发布输出吗?Dan,我用日志信息进行了更新。我在某个地方读到,jsdom与Cloudfoundry之间存在问题,因为Python依赖性。我换成了Cheerio,它工作得很好。