在Openshift上部署React.js入门套件

时间:2016-06-18 21:36:12

标签: node.js reactjs deployment openshift starter-kits

我正在尝试在Openshift上部署React.js入门套件(此处为https://github.com/kriasoft/react-starter-kit)。为此,我修改了一些我在这里解释的小事。

首先,Openshift中的日志告诉我 servers.js 文件中的import关键字无法识别。我认为Openshift目前还没有使用Babel。

此处提到了解决方法:How do I modify the node startup command in Open Shift?

所以我修改了 server.js 内容(因为Openshift运行node server.js命令,而不是babel-node tools/run start scripts.start属性中定义的package.json }})使用推荐内容并将我的基础server.js重命名为app.js

现在,日志告诉我找不到babel-core所以我修改了 package.json 文件,将babel-corebabel-cli放入{{1}而不是dependencies并删除另一个属性的devDependencies值。

所有时候,当我在Openshift(DEV文件夹的代码)上推送代码时,编译在随机时间(安装依赖项时)失败并且需要很长时间。但是,当我重新启动墨盒时,我可以看到我解释的日志。

我目前的情况是事情看起来更好但问题是磁盘空间:还不够。这让我感到惊讶,因为盒式磁带可以容纳1GB,而在我的本地机器上,所有具有依赖性的文件都需要大约148MB。我试图删除并重新创建墨盒:出现同样的事情。

有人知道这里有什么不对吗?卡片超过1GB的事实很奇怪......

谢谢大家。

1 个答案:

答案 0 :(得分:0)

这是解决方案......我希望能为一些人节省时间!

  • 将“生产”模式设置为墨盒应用程序(以便不要下载这么多inode):

    rhc set-env NODE_ENV=production --app appname

  • 不要忘记修改config.js

    export const port = process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || 3000; export const host = process.env.OPENSHIFT_NODEJS_IP || 'localhost'; export const databaseUrl = 'sqlite:' + process.env.OPENSHIFT_DATA_DIR + 'database.sqlite';

  • 修改app.js(包括主持人):

    import { port, host, auth, analytics } from './config'; //... models.sync().catch(err => console.error(err.stack)).then(() => { app.listen(port, host, () => { console.log(`The server is running at http://${host}:${port}/`); });