RE: Angular2 2.0.0, angular-cli v1.0.0-beta.11-webpack.8
Comment puis-je dire à angular-cli d'inclure un fichier de "src / assets" à la racine de "dist" lors de sa construction?
Nous déployons sur un hôte Windows et devons inclure un fichier "web.config" pour indiquer à IIS de tout acheminer vers l'index. Nous faisions ce pré RC4, mais avec toutes les mises à jour, il est tombé entre les mailles du filet (je ne me souviens pas comment nous l'avons fait).
J'ai parcouru la documentation du repo GitHub et je n'ai rien trouvé d'utile à ce sujet. Peut-être que je suis au mauvais endroit?
Dans la ToC , il y a une puce "Ajout de fichiers supplémentaires à la construction", mais il semble que cette section n'existe pas.
angular
angular-cli
Kizmar
la source
la source
"copy:webConfig": "node node_modules/copy/bin/cli.js web.config dist"
. J'ai aussi ajouté un script de post de construction:"postbuild": "npm run copy:webConfig"
. Il y avait d'autres problèmes pour essayer de faire fonctionner la copie, mais cela a fait l'affaire.Réponses:
La propriété "assets" de angular-cli.json peut être configurée pour inclure des fichiers personnalisés dans la construction angular-cli webpack. Alors, configurez la valeur de la propriété "assets" comme un tableau. Par exemple:
la configuration ci-dessus copiera config.jsn et .htaccess dans le dossier dist pendant la construction du webpack angular-cli. le paramètre ci-dessus a fonctionné dans la version angular-cli 1.0.0-beta.18
la source
Réponse correcte actuelle:
L'équipe a ajouté la prise en charge de la copie de fichiers spécifiques tels quels dans le dossier de sortie (
dist
par défaut) dans une version ultérieure de Angular CLI (serait la version bêta 17 ou 19 - elle est dans les versions finales 1.x depuis des lustres).Vous l'ajoutez simplement au tableau
angular-cli.json
comme suit:(Notez que le chemin est relatif au
src
dossier)Je l'utilise personnellement et cela fonctionne très bien.
Depuis la version bêta 24, j'ai ajouté une fonctionnalité à Angular CLI qui garantit que tous lesassets
fichiers et dossiers sont servis à partir du serveur de développement Webpack lors de l'exécutionng test
non seulementng serve
.Il prend également en charge le service des fichiers d'actifs dans le serveur de développement Webpack utilisé pour les tests unitaires (
ng test
).(au cas où vous auriez besoin de fichiers JSON pour les tests, ou si vous détestez simplement voir 404 avertissements dans la console).
Ils sont déjà servis
ng e2e
car il est pleinng serve
.Et il a également des fonctionnalités plus avancées, comme le filtrage des fichiers que vous voulez dans un dossier et le fait que le nom du dossier de sortie soit différent du dossier source:
Vous pouvez également vous référer à la documentation officielle: Guide Angular - Configuration de l'espace de travail .
.
[POUR ARCHIVAGE UNIQUEMENT] Réponse originale (6 octobre 2016):
Ceci n'est malheureusement pas pris en charge actuellement (à partir de la version bêta-16). J'ai soulevé l'inquiétude exacte à l'équipe (fichiers web.config), mais cela ne semble pas se produire de si tôt (à moins que vous ne fassiez passer la CLI, etc.).
Suivez ce numéro pour une discussion complète et les éventuels détails futurs.
PSPour le fichier JSON, vous pouvez le placer
./src/assets/
. Ce dossier est copié tel quel./dist/assets/
. C'est le comportement actuel.Plus tôt dans les jours de systemJS, il y avait un autre
./public/
dossier qui était copié./dist/
directement, mais il a disparu dans les versions Webpack, dont le problème mentionné ci-dessus traite.la source
Une solution (même si à mon avis est un peu un hack) est de déclarer une variable dans votre
main.ts
fichier qui nécessite le fichier supplémentaire que vous souhaitez inclure dans la sortie de construction du webpack.EX:
Lorsque webpack rencontre cette instruction de déclaration de variable,
main.ts
il émet leweb.config
fichier brut dans le cadre de la sortie de construction:Une solution idéale serait dans la configuration du webpack, mais je ne peux pas comprendre comment angular-cli gère cela
angular-cli.json
pour le moment (beta.16).Donc, si quelqu'un a une meilleure réponse qui étend la configuration du webpack pour un projet généré par angular-cli, j'aimerais l'entendre.
la source
Pour les lecteurs Angular 8 ,
.htaccess
doit êtresrc/.htaccess
. Voir ci-dessous,Assurez-vous que vous avez placé le
.htaccess
fichier dans lesrc
répertoire de votre projet.(Si vous avez besoin d'un
htaccess
fichier valide , vous pouvez en trouver un ici - https://stackoverflow.com/a/57126352/767625 )C'est tout. Cela devrait maintenant être copié lorsque vous frappez
ng build --prod=true
.J'espère que cela aide quelqu'un.
À votre santé,
la source
angular.json
pas celuiangular-cli.json
mentionné dans les réponses précédentes.Il existe une section "scripts" dans le fichier angular-cli.json. Vous pouvez y ajouter tous les fichiers javascript tiers.
la source
Dans mon cas, j'ai utilisé la version Angular 5 , j'ai donc essayé de créer un fichier appelé Staticfile.txt lors de l'exécution de la commande ng build --prod. assurez-vous de donner l'extension de fichier, sinon il ne créera pas le fichier.
la source
Modifiez angular.json.
Ajouter une entrée au tableau des actifs:
la source