Il est difficile de diagnostiquer précisément le problème que vous rencontrez sans les mains sur l'ensemble de votre base de code et backend (comme d'autres l'ont suggéré, le problème peut être pas angulaire).
Cela dit, je vous recommande FORTEMENT de commencer à utiliser le angulaires-cli. Il a été conçu par l'angulaire de l'équipe pour accomplir toutes les choses que vous devez faire dans un facile à utiliser l'interface de ligne de commande. Donc, ma réponse est basée sur l'utilisation de la angulaires-cli.
Ici sont les choses que vous pouvez faire pour optimiser votre ng2 de projet pour la production:
1) Avance (AoT) Compilation - Groupage/Minification/Arbre qui tremble
Regardez, oublier le mal de tête de la configuration d'un tas de gulp tâches à accomplir toutes ces choses. Le angulaires-cli poignées de Groupage/Minification/Arbre qui tremble/AOT compilation en une seule étape facile:
ng construire -prod-aot
Ceci va produire la suite de js fichiers dans votre répertoire "dist":
inline.d41d8cd98f00b204e980.bundle.js
vendor.d41d8cd98f00b204e980.bundle.js
main.d41d8cd98f00b204e980.bundle.js
styles.4cec2bc5d44c66b4929ab2bb9c4d8efa.bundle.css
Vous aurez également la gzippé versions de ces fichiers pour PLUS d'optimisation:
inline.d41d8cd98f00b204e980.bundle.js.gz
vendor.d41d8cd98f00b204e980.bundle.js.gz
main.d41d8cd98f00b204e980.bundle.js.gz
Angulaire du AOT compilation fera automatiquement l'arborescence "secouer" sur votre code et de se débarrasser de toutes les références. Par exemple, vous pouvez utiliser lodash dans votre projet, mais vous aurez probablement utiliser un peu de lodash fonctions; arbre secouant va couper toutes les parties non utilisées de lodash qui ne sont pas nécessaires dans votre version finale. Et le plus important, AOT compilation sera pré-compiler l'ensemble de votre code et de points de vue qui signifie MOINS de temps, le navigateur doit obtenir le ng2 application de roulement. Cliquez ici pour plus d'infos sur angulaire du AOT compilation.
2) le chargement Paresseux parties de votre application
Si vous sculpter votre application en plusieurs parties, vous n'avez pas besoin de charger EVERYING lors de votre première application des charges. Vous pouvez spécifier différents modules en fonction de votre application, qui peuvent ensuite être regroupés (par le angulaires-cli aot compilateur) dans les différents morceaux. Lire ici pour apprendre comment organiser votre projet en modules que vous pouvez compiler dans des mandrins qui ne sont chargés QUE de BESOIN. Angulaires-cli gérer la création de ces morceaux pour vous.
3) Angulaire Universelle
Maintenant, si vous voulez vraiment faire de votre temps de chargement EXTRÊMEMENT rapide, alors vous voudrez à envisager la mise en œuvre Angulaire Universelle, qui est lorsque vous compilez votre point de vue initial SUR LE SERVEUR. Je n'ai pas utilisé Angulaire Universelle comme je l'ai été en mesure d'atteindre des temps de chargement rapide avec les étapes 1 et 2. Mais c'est une option excitante dans le ng2 d'outils. Gardez à l'esprit que vous n'avez pas à compiler ou exécuter le ng2 application sur le serveur, vous compilez le point de vue initial serverside de sorte que l'utilisateur reçoit rapidement une secousse de l'html et donc l'utilisateur PERÇOIT le temps de chargement très rapide (même si une pleine charge sera encore à la traîne un peu). Cette étape ne permet pas d'éviter la nécessité pour les autres étapes. Comme un bonus, Angulaire Universelle est censé aider avec la SEO.
4) l'enseignement Secondaire regroupement
Si je ne suis pas en utilisant le chargement paresseux, j'ai l'habitude d'aller de l'avant et de poursuivre le bundle de la distribution des fichiers qui sont générés à partir AOT compilation. J'ai donc créer un main.bundle.js fichier concats inline.js, vendor.js et main.js les fichiers. J'utilise gulp pour cela.