J'essaie d'exécuter l'exemple suivant: https://github.com/ceolter/ag-grid-react-example
(ag-grid réagit par exemple)
Mais, au lieu de faire npm run
, je veux l’exécuter sur Tomcat. Comment faire?
Vous pouvez facilement déployer des fichiers statiques sur Tomcat. Le projet que vous avez lié ne comporte pas de script pour générer la version de production de l'exemple. Vous devez donc procéder comme suit:
npm install -g webpack
webpack --config webpack.config.standard.js --progress --colors --hot --inline
ou webpack --config webpack.config.large.js --progress --colors --hot --inline
. Cela créera le répertoire dist
.webapps
, créez un autre répertoire pour votre démo ag-grid
.index.html
et dist
dans ag-grid
.http://Host:port/ag-grid
.Exécuter
npm run build
Cela créera la version déployable de votre application dans le sous-dossier build
de votre arborescence de projet. Tout ce dont vous avez besoin maintenant, c'est de copier le index.html
avec tous ses amis de ce dossier dans votre répertoire Tomcat destiné à servir des fichiers statiques. Il s'agit du niveau supérieur du dossier de l'application Tomcat. La structure de répertoire standard documentée ici .
Il est également très simple de créer une application Web réelle (.war) comme décrit ici . Les fichiers statiques résident uniquement au niveau supérieur de l'archive. Vous devez également configurer les pages par défaut dans WEB-INF/web.xml à l'intérieur de l'archive. Cette application peut être déployée à partir de la console d'administration Tomcat.
Il existe différentes manières de déployer des React Js sur Tomcat.Déployer Réactiver JS dans Tomcat ou tout conteneur de servlets est un défi et un peu compliqué. Il y a un problème dans l'une de mes applications que je développe. J'ai utilisé BrowserRouter dans mon application.
Le problème est qu’il n’ya pas d’erreur en tant que telle dans le code, mais que rien ne se charge. Je vois un écran blanc sans erreur. J'ai vérifié la console et vu ses 404 lancés pour certaines de mes ressources statiques groupées.
On remarque un comportement étrange. Si j'exécute l'application sur le serveur Web pack dev, le même code fonctionne correctement et les routeurs également. Le même comportement n'est pas observé une fois que j'ai été déployé sur Tomcat.
Comme vous le savez, BrowserRouter utilise l’API de l’historique HTML5 pour maintenir votre interface utilisateur synchronisée avec URL.Par exemple, si vous utilisez React Router avec une route pour,/todos/42, le serveur de développement Webpack répondra de manière appropriée en locallocalhost: 3000/todos/42, mais une construction de production comme ci-dessus ne sera pas.
Consultez ce lien pour comprendre le problème.
Nous pouvons également mettre à jour le package.json.
Si vous souhaitez l'exécuter en tant que partie de votre projet basé sur Java, vous pouvez utiliser le plug-in maven exec pour générer et exécuter les paramètres npm run build inside exec.
<html>
<head>
<title>Redux Counter Example</title>
</head>
<body>
<div id="root">
</div>
</body>
<script src="~/Scripts/frontend/dist/bundle.js"></script>
</html>