2016-06-18 1 views
1

J'essaye de déployer le Starter Kit de React.js (disponible ici: https://github.com/kriasoft/react-starter-kit) sur Openshift. Pour ce faire, j'ai modifié quelques petites choses que j'explique ici. D'abord, les journaux de Openshift m'indiquent que le mot-clé import dans le fichier servers.js n'est pas reconnu. Je pense que Babel n'est pas utilisé par Openshift à ce stade.Déployer React.js Starter Kit sur Openshift

Une solution pour cela est mentionné ici: How do I modify the node startup command in Open Shift?

Je modifié le contenu server.js (parce que OpenShift exécutez la commande node server.js et non le babel-node tools/run start défini dans la propriété scripts.start de package.json) avec le contenu recommandé et renommé ma base server.js en app.js.

Maintenant, les journaux me dit que babel-core ne se trouve pas si je l'ai modifié le fichier package.json pour mettre babel-core et babel-cli dans dependencies au lieu de devDependencies et supprimer une valeur DEV d'une autre propriété.

Tout le temps, quand je pousse mon code sur Openshift (code du dossier src), la compilation a échoué à un moment aléatoire (quand les dépendances sont installées) et cela prend beaucoup de temps. Cependant, lorsque je redémarre la cartouche, je peux voir les journaux que j'ai expliqué.

Ma situation actuelle est que les choses ont l'air mieux mais le problème est l'espace disque: pas assez. Cela me surprend parce que la cartouche peut héberger 1 Go et sur ma machine locale tous les fichiers avec des dépendances prennent ~ 148 Mo. J'ai essayé de supprimer et de recréer la cartouche: la même chose apparaît.

Est-ce que quelqu'un sait ce qui peut être mauvais ici? Le fait que le cardridge dépasse 1 Go est bizarre ...

Merci à tous.

Répondre

0

Voici la solution ... J'espère que cela fera économiser des heures pour certaines personnes!

  • Réglez le mode "production" à l'application de la cartouche (de sorte que ne pas télécharger autant de inodes):

    rhc set-env NODE_ENV=production --app appname

  • Ne pas oublier de modifier 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';

  • Modifier app.js (y compris l'hôte):

    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}/`); });