J'ai créé n nouvelle angular angulaire utilisant angular-cli.
J'ai terminé l'application et la prévisualiser à l'aide de ng-serve, elle fonctionne parfaitement.
Après cela, j'ai utilisé ng build --prod, qui génère le dossier 'dist'. Lorsque je mets ce dossier dans xampp, il ne fonctionne pas. J'ai trouvé qu'il n'y a pas de fichiers * .js, qui devraient y figurer après la conversion * .ts -> * .js (je suppose).
J'ai joint la capture d'écran, dans laquelle il montre à gauche le dossier src contenant tous les fichiers .ts. Au milieu, le dossier 'dist' et la capture d'écran du navigateur.
S'il vous plaît, guidez-moi comment puis-je générer une application entièrement fonctionnelle à partir de angular-cli, que je peux exécuter sur mon serveur xampp.
Capture d'écran:
Méthode 1 (populaire): Si vous utilisez angular-cli, alors
ng build --prod
fera l'affaire. Ensuite, vous pouvez tout copier de .dist
dossier dans votre dossier de serveur
méthode 2:
vous pouvez utiliser http-server pour servir votre application. Pour installer le serveur http
npm install http-server -g
et après être allé dans votre dossier de projet
http-server ./dist
il servira tous les fichiers de votre dossier. vous pouvez vérifier sur le terminal l'adresse IP et le port que vous pouvez utiliser pour accéder à l'application. Maintenant, ouvrez votre navigateur et tapez
ip-adress:port/index.html
J'espère que ça vous aidera :)
Bonus: Si vous souhaitez déployer dans heroku. Veuillez suivre ce didacticiel détaillé https://medium.com/@ryanchenkie_40935/angular-cli-deployment-Host-your-angular-2-app-on-heroku-3f266f13f352
Pour ceux qui recherchent une réponse pour IIS hébergement ...
Construisez votre projet
ng build --prod
Copiez tout le contenu du dossier ./dist dans le dossier racine de votre site Web en conservant la structure du dossier dans ./dist (c.-à-d., Ne déplacez rien). À l'aide de la version Beta-18 de angular-cli, tous les actifs (les images dans mon cas) ont été copiés vers ./dist/assets lors de la construction et ont été correctement référencés dans leurs composants.
Vérifiez votre fichier index.html et éditez cette ligne
<base href="/[your-project-folder-name]/dist/">
Votre contenu devrait se charger correctement. Vous pouvez ensuite charger des styles globalement
Vous devez définir la base href comme recommandé par Johan
ng build --prod --bh /[your-project-folder-name]/dist/
Voici un exemple avec Heroku:
Créer un compte Heroku et installer le CLI
Bouge le angular-cli
dep dans le dependencies
dans package.json
_ (pour qu'il soit installé lorsque vous appuyez sur Heroku.
Ajoutez un script postinstall
qui exécutera ng build
lorsque le code est transmis à Heroku. Ajoutez également une commande de démarrage pour un serveur Node qui sera créé à l'étape suivante. Ceci placera les fichiers statiques de l'application dans un répertoire dist
du serveur et démarrera. l'application après.
"scripts": {
// ...
"start": "node server.js",
"postinstall": "ng build --aot -prod"
}
// server.js
const express = require('express');
const app = express();
// Run the app by serving the static files
// in the dist directory
app.use(express.static(__dirname + '/dist'));
// Start the app by listening on the default
// Heroku port
app.listen(process.env.PORT || 8080);
heroku create
git add .
git commit -m "first deploy"
git Push heroku master
Voici un rapide Writeup Je l'ai fait qui a plus de détails, y compris comment forcer les demandes à utiliser HTTPS et comment gérer PathLocationStrategy
:)
Utilisation ng build
avec le --bh
drapeau
définit la balise de base href sur/myUrl/dans votre index.html:
ng build --base-href /myUrl/
ng build --bh /myUrl/
J'utilise la dernière version de l'Angular-CLI (au moment de cette réponse, sa 1.0.0Beta-18)
Cette version fonctionne de la manière suivante: elle place tout dans des fichiers d'ensembles et les appelle dans le fichier index.html. Après cela, vous devez copier vos ressources dans le dossier dist (pour une raison quelconque, cela ne fonctionne pas). Enfin, vérifiez votre base href pour vous assurer qu’elle est réglée sur ce qui doit être réglé, puis elle devrait fonctionner. C'est ce qui a fonctionné pour moi et j'ai testé à la fois sur Apache et Node.
J'utilise actuellement Angular-CLI 1.0.0-beta.32.3
dans le répertoire racine de votre projet, lancez npm install http-server -g
après une exécution réussie de l'installation ng build --prod
lors de l'exécution réussie de la construction http-server ./dist
le serveur http ne supporte pas le routage côté client, donc rien d'autre que votre URL de base ne fonctionnera. Au lieu de cela, vous pouvez utiliser angular-http-server :
npm install -g angular-http-server
ng build --prod
cd dist
angular-http-server
Cela ne devrait être utilisé que pour tester l'application localement avant de la déployer sur un serveur Web. Pour savoir comment déployer réellement l'application sur un serveur Web, consultez l'article article d'Angular.io sur le déploiement , qui traite des considérations à prendre en compte lors de la création d'un déploiement et fournit des configurations pour une variété de serveurs Web courants utilisé dans la production.
Si quelqu'un travaille avec Nginx, voici la solution complète:
Supposons que vous souhaitiez déployer votre angular sur l'hôte: http://example.com
et PORT: 8080
Note - L'hôte et le port peuvent être différents dans votre cas.
Assurez-vous que vous avez <base href="/">
dans votre index.html balise principale.
Tout d’abord, allez sur votre chemin angular angulaire $ repo (c'est-à-dire// home/user/helloWorld) angulaire) sur votre machine.
Puis construisez/dist pour votre serveur de production en utilisant la commande suivante:
ng build --prod --base-href http://example.com:8080
Copiez maintenant le dossier/dist (c.-à-d./Home/user/helloWorld/dist) à partir du référentiel angular de votre machine) sur la machine distante sur laquelle vous souhaitez héberger votre serveur de production.
Connectez-vous maintenant à votre serveur distant et ajoutez la configuration suivante du serveur nginx.
server {
listen 8080;
server_name http://example.com;
root /path/to/your/dist/location;
# eg. root /home/admin/helloWorld/dist
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
# This will allow you to refresh page in your angular app. Which will not give error 404.
}
}
Maintenant, redémarrez Nginx.
C'est ça !! Vous pouvez maintenant accéder à votre angular sur http://example.com:808
J'espère que ça vous sera utile.