Openshift - 部署时缺少模块 Keystone.JS

Openshift - missing modules when deploying Keystone.JS

我正在尝试安装 keystone.js,但总是出现缺少模块的错误,有人可以帮忙吗?我已经更新了我的 package.json 以包含 cloud-env 依赖项,但仍然没有任何乐趣。很少有关于将 KS 部署到 Openshift 的文档。

Error: Cannot find module 'keystone'
 at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/lib/openshift/5501b0c04382ecfefe0000a2/app-root/runtime/repo/web.js:1:78)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
DEBUG: Program node web.js exited with code 8
DEBUG: Starting child process with 'node web.js'

Package.json:

{
  "name": "node",
  "version": "0.0.0",
 "private": true,
 "dependencies": {
   "cloud-env": "^0.1.0",
   "keystone": "latest",
   "underscore": "latest"
  },
  "devDependencies": {
    "grunt": "~0.4.4",
    "grunt-express-server": "~0.4.17",
    "grunt-contrib-jshint": "~0.7.1",
    "grunt-contrib-compass": "^1.0.1",
    "grunt-contrib-csslint": "^0.3.1",
"grunt-contrib-cssmin": "^0.11.0",
"grunt-contrib-watch": "^0.6.1",
"grunt-cssstats": "^1.0.1",
"grunt-stats": "^0.1.0",
"jshint-stylish": "~0.1.3",
"load-grunt-tasks": "~0.4.0",
"load-grunt-configs": "^0.4.1",
"grunt-node-inspector": "~0.1.5",
"time-grunt": "~0.3.1",
"grunt-concurrent": "~0.5.0",
"grunt-nodemon": "~0.2.1",
"open": "0.0.5"
   },
   "engines": {
     "node": ">=0.10.22",
   "npm": ">=1.3.14"
   },
  "scripts": {
    "start": "node web.js"
  },
    "main": "web.js"
  }

这是一个迟到的答案,但今天我遇到了同样的问题,以下对我有用:

rhc ssh <app>
cd $OPENSHIFT_REPO_DIR
npm install

可能是将应用程序推送到 openshift 时出了点问题。这样你就可以手动修复包了。

我运行陷入同样的​​问题。根据我的研究,关闭 ssh 连接的问题似乎是其他人 运行 在跨各种语言构建小型 openshift 齿轮时遇到的问题(我读到一些观点 它 运行如果您使用 中档 或更高档,则安装正常 )。但是,我未能使用@barney765 的解决方案获得 npm install 来完成:每次 运行 时我都会遇到类似的 "connection closed" 问题。

由于升级到中型齿轮并不是我真正准备做的事情,我的解决方法是 将我的生产 node_modules 提交到 git 所以没有 [=部署到 openshift.

后需要 10=]

同时提交您的 node_modules does have its drawbacks - the openshift documentation appeears to suggest this is as a viable approach (read the "node_modules" heading)