恶梦DEBUG在谷歌应用引擎标准环境

时间:2017-12-20 19:52:55

标签: google-app-engine google-cloud-platform nightmare

我在谷歌应用引擎上运行噩梦。我猜它不起作用。 所以И想要添加DEBUG=nightmare,但它在启动时失败了。

这是我的package.json

"scripts": {
    "preinstall": "apt-get update && apt-get install -y libfontconfig1 libgtk2.0-0 libgconf-2-4 libasound2 libxtst6 libxss1 libnss3 xvfb && npm install nightmare",
    "deploy": "gcloud app deploy",
    "start": "xvfb-run -a node app.js",
    "lint": "samples lint",
    "pretest": "npm run lint",
    "system-test": "samples test app",
    "test": "npm run system-test",
    "e2e-test": "samples test deploy"
  },
  "dependencies": {
    "express": "4.15.4",
    "nightmare": "2.10.0"
  }

这是错误

  

应用程序启动错误:

     

appengine-hello-world@0.0.1 start / app

     

xvfb-run -a DEBUG =梦魇节点app.js
  / usr / bin / xvfb-run:183:/ usr / bin / xvfb-run:DEBUG = nightmare:not found   错误的ERR!文件sh

1 个答案:

答案 0 :(得分:4)

AppEngine Standard不支持Node.js.所以你可能在Flex环境中运行。 我从这开始[1]。请参阅package.json差异。 我修改了package.json以匹配你的情况并在app.js中尝试过噩梦。

我可以通过替换来重现你的情况     "开始":" xvfb-run -a node app.js", 在package.json上:

xvfb-run -a DEBUG=nightmare node app.js 

上一个命令的帮助页面显示:

-a        --auto-servernum          try to get a free server number, starting at
                                --server-num
-e FILE   --error-file=FILE         file used to store xauth errors and Xvfb
                                output (default: /dev/null)
-f FILE   --auth-file=FILE          file used to store auth cookie
                                (default: ./.Xauthority)
-h        --help                    display this usage message and exit
-n NUM    --server-num=NUM          server number to use (default: 99)
-l        --listen-tcp              enable TCP port listening in the X server
-p PROTO  --xauth-protocol=PROTO    X authority protocol name to use
                                (default: xauth command's default)
-s ARGS   --server-args=ARGS        arguments (other than server number and
                                "-nolisten tcp") to pass to the Xvfb server
                                (default: "-screen 0 640x480x8")

我看不到有关DEBUG的任何信息...... 所以你可能想做类似的事情:

xvfb-run -e error.log  -a node app.js 

要保存错误,但我不确定。

我要分享我的配置。

我在运行'sudo npm install'之前和之后与你分享:

我补充说:

"preinstall": "apt-get update && apt-get install -y libfontconfig1 libgtk2.0-0 libgconf-2-4 libasound2 libxtst6 libxss1 libnss3 xvfb && npm install nightmare",

并修改:     "开始":"节点app.js", 至:     "开始":" xvfb-run -a node app.js",

before:
{
  "name": "appengine-hello-world",
  "description": "Simple Hello World Node.js sample for Google App Engine Flexible Environment.",
  "version": "0.0.1",
  "private": true,
  "license": "Apache-2.0",
  "author": "Google Inc.",
  "repository": {
    "type": "git",
    "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
  },
  "engines": {
    "node": ">=4.3.2"
  },
  "scripts": {
    "preinstall": "apt-get update && apt-get install -y libfontconfig1 libgtk2.0-0 libgconf-2-4 libasound2 libxtst6 libxss1 libnss3 xvfb && npm install nightmare",
    "deploy": "gcloud app deploy",
    "start": "xvfb-run -a node app.js",
    "lint": "samples lint",
    "pretest": "npm run lint",
    "system-test": "samples test app",
    "test": "npm run system-test",
    "e2e-test": "samples test deploy"
  },
  "dependencies": {
    "express": "4.15.4"
  },
  "devDependencies": {
    "@google-cloud/nodejs-repo-tools": "1.4.17"
  },
  "cloud-repo-tools": {
    "test": {
      "app": {
        "msg": "Hello, world!"
      }
    },
    "requiresKeyFile": true,
    "requiresProjectId": true
  }
}

'npm install'后,文件自动更新为:

{
  "name": "appengine-hello-world",
  "description": "Simple Hello World Node.js sample for Google App Engine Flexible Environment.",
  "version": "0.0.1",
  "private": true,
  "license": "Apache-2.0",
  "author": "Google Inc.",
  "repository": {
    "type": "git",
    "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
  },
  "engines": {
    "node": ">=4.3.2"
  },
  "scripts": {
    "preinstall": "apt-get update && apt-get install -y libfontconfig1 libgtk2.0-0 libgconf-2-4 libasound2 libxtst6 libxss1 libnss3 xvfb && npm install nightmare",
    "deploy": "gcloud app deploy",
    "start": "xvfb-run -a node app.js",
    "lint": "samples lint",
    "pretest": "npm run lint",
    "system-test": "samples test app",
    "test": "npm run system-test",
    "e2e-test": "samples test deploy"
  },
  "dependencies": {
    "express": "4.15.4",
    "nightmare": "^2.10.0"
  },
  "devDependencies": {
    "@google-cloud/nodejs-repo-tools": "1.4.17"
  },
  "cloud-repo-tools": {
    "test": {
     "app": {
        "msg": "Hello, world!"
      }
    },
    "requiresKeyFile": true,
    "requiresProjectId": true
  }
}

我与噩梦共享一个片段js:

'use strict';
// [START app]
const express = require('express');
const app = express();
const Nightmare = require('nightmare')
app.get('/', (req, res) => {
  Nightmare({show: false})
  .goto('https://google.com')
  .wait('body')
  .insert('input[aria-label="Search"]', 'node-nightmare github.com')
  .click('input[type="submit"]')
  .wait(1000)
  .wait('body')
  .evaluate(function() {
     // return $('a:contains("node-nightmare")').text();
     // res.status(200).send($('a:contains("node-
nightmare")').text()).end();
     console.log('EVALUATE');
  })
  .then(function(ret) {
     console.log('THEN');
     console.log(ret)
  });
  res.status(200).send('Hello, world!!!!!').end();
});
// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`App listening on port ${PORT}`);
  console.log('Press Ctrl+C to quit.'); 
});
// [END app]

您可以在本地服务器上运行:     npm开始 或部署到App Engine     gcloud app deploy

希望它有帮助!

[1] https://cloud.google.com/appengine/docs/flexible/nodejs/quickstart