我正在尝试在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-core
和babel-cli
放入{{1}而不是dependencies
并删除另一个属性的devDependencies
值。
所有时候,当我在Openshift(DEV
文件夹的代码)上推送代码时,编译在随机时间(安装依赖项时)失败并且需要很长时间。但是,当我重新启动墨盒时,我可以看到我解释的日志。
我目前的情况是事情看起来更好但问题是磁盘空间:还不够。这让我感到惊讶,因为盒式磁带可以容纳1GB,而在我的本地机器上,所有具有依赖性的文件都需要大约148MB。我试图删除并重新创建墨盒:出现同样的事情。
有人知道这里有什么不对吗?卡片超过1GB的事实很奇怪......
谢谢大家。
答案 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}/`);
});