0
votes

Application migratie sur Angular 6: mais obtenir des erreurs lors de l'exécution de NPM Run Build --Prod. Mais commandez NPM Run Cuild --env = Prod court avec succès

Lorsque j'utilise la commande NPM Run Build - --Prod i Obtenir des messages d'erreur suivants:

  • Propriété 'PropertyName1' est privé et uniquement accessible dans la classe 'AppComponent'
  • Propriété 'PropertyName2' n'existe pas sur le type 'AppComponent'

    Erreur dans SRC \ APP \ Composants \ App \ APPLOnent.html (77,56) :: Propriété «Valider» est privé et accessible uniquement dans la classe 'AppComponent'. SRC \ APP \ Composants \ EntitySearchLight \ EntitySearchLight.component.html (3 157): : Propriété 'LoadingMessage' est privé et accessible uniquement dans Classe 'EntitySearchLightComponent'. SRC \ APP \ Composants \ EntitysearchLight \ EntitySearchLight.component.html (23,91): : Attendu 0 arguments, mais a obtenu 1. SRC \ APP \ Composants \ EntitySearchLight \ EntitySearchLight.component.html (97,62): : Propriété 'E' n'existe pas sur le type 'entitéSearchLightComponent'. SRC \ App \ Composants \ Search \ Search.component.html (3,157) :: Propriété 'LoadingMessage' est privé et accessible uniquement en classe 'RechercheComponent'. SRC \ APP \ Composants \ Search \ Search.component.html (23,91) :: Préparatifs 0 Arguments, mais Got 1. SRC \ App \ Composants \ Search \ Search.component.html (57,43) :: Propriété 'Onfilteritemselect' est privé et accessible uniquement en classe 'RechercheComponent'. SRC \ App \ Composants \ Search \ Search.component.html (90 58) :: Propriété 'E' n'existe pas sur le type 'RechercheComponent'.

    Même application construit avec succès lorsque je cours: NPM Run Cuild --env = Prod

    Pouvez-vous me permettre de savoir comment créer des modifications de processus ou de configuration en raison de ces deux commandes?


4 commentaires

Dupliqué possible de propriété est privé et seulement Accessible au sein d'une erreur de classe dans la bibliothèque angulaire


Si vous avez créé des modèles (exportation d'une classe) et définissez les propriétés comme par exemple: Nom privé: chaîne; Cette erreur pourrait apparaître, changer de public


@Julienambos merci pour le lien mais pouvez-vous s'il vous plaît expliquer la différence en termes de processus de construction?


@Nemanjag merci


4 Réponses :


1
votes

Lorsque vous exécutez Compiler avec --Prod Switch, dans Angular 6 Par défaut est AOT (compiler à l'avance des composants de modèle) et modifier est que les accessoires de la classe de composants (fichiers TS) utilisés dans le modèle (fichier HTML ou HTML Modèle à l'intérieur du composant) doit être public:

Retirer privé ou protégé de la validation, supprimer privé ou protégé de la charge de chargement, ...

dans le fichier TS de composants. Cordialement!


0 commentaires

1
votes

Lorsque vous jetez un coup d'oeil à angular.json Vous verrez qu'il y a quelques options supplémentaires que vous pouvez définir pour la version NPM Run Build --Prod Drapeau mais quand vous Exécutez le NPM Run Cuild --env = Prod Vous venez de modifier simplement le fichier Environment.ts de sorte que les options ne soient pas utilisées ici.

Environnement.ts

dans le dossier Environnement Vous pouvez trouver deux fichiers (par défaut) que l'on est utilisé pour la production et la seconde doit être utilisée localement. En exécutant NPM Run Build --env = Prod Vous vient de créer votre application avec l'environnement mais avec la version ng par défaut non NG Build --Prod .

Dans le code, vous pouvez utiliser un environnement pour enregistrer certains modules uniquement avec la construction de la production et non avec la configuration locale.

Exemple: xxx


1 commentaires

Qu'est-ce que signifie en changeant Environnement TS File?



1
votes

Comme il a été écrit ci-dessus, vous avez besoin de modifier le modificatif d'accès privé à public . Vous avez un peu de fichiers où est nécessaire. Cependant, vous devez éviter le problème dans la fonctionnalité.

J'ai recommandé d'utiliser Tslint et de vérifier votre code. Ajouter dans tslint.json nouvelle règle xxx

et partout ajoutez le modificateur d'accès.

Créer une commande dans . JSON où vous pouvez vérifier la construction xxx


11 commentaires

Il ne jette pas une erreur sur local. Toute configuration supplémentaire requise


local Vous voulez dire ng servir ?


Non, j'utilise le type de projet de modèle de spa angulaire 6 .NET Core Core


Je ne suis pas sûr de votre enthousiasme. Vous suivez Créer une version locale Build Run NPM Run Building: Prod avec une erreur de peluche et n'avez pas d'erreur, n'est-ce pas?


L'erreur est corrigée qui venait lors du déploiement de l'application. Mais la même erreur n'apparaît pas sur la section locale même si je définis membre-Accès: True dans Tslint.json


Vous travaillez dans la construction de Visual Studio?


Oui, je suis en train de construire dans Visual Studio car j'utilise le type de modèle de spa anguleux .NET


1 Assurez-vous que vous avez Plugin Tslint in vs. 2 Tslinter a été réglé sur votre fichier à partir de Tslint.json dans votre projet ( Outils> Analyse de code Web> Modifier les paramètres Tslint (Tslint.json) )


Travailler Ouvrir la console de VS Allez dans votre répertoire de projet et appelez NG Lint . Avez-vous des erreurs?


J'ai utilisé Marketplace.visualstudio.com/... Pour obtenir l'erreur lors de la construction sur la locale


Pouvez-vous modifier les paramètres Tslint et choisir Tslint.json à partir de votre projet? Est-ce qu'une erreur?



1
votes

Le - Prod Drapeau Activez de nombreux drapeaux d'optimisation. L'un d'entre eux est - AOT pour la compilation à l'avance. Vos modèles de composants sont compilés au cours de la construction, de sorte que TOSSCRIPT peut détecter plus de problème dans votre code. Vous pouvez compiler en mode Dev, mais activez toujours le drapeau - AOT si vous souhaitez voir cette erreur avant de construire pour prod.

de La documentation officielle du compilateur

Détecter des erreurs de modèle plus tôt

Le compilateur AOT détecte et rapporte des erreurs de liaison de modèle pendant l'étape de construction avant que les utilisateurs puissent les voir.


0 commentaires