126 votes

comment modifier le chemin du dossier de dist dans angular-cli après la construction d'un ng

J'aimerais utiliser angular-cli avec asp.net core et j'ai besoin de savoir comment je peux changer le chemin de l'adresse de l'utilisateur. dist dossier

222voto

Meligy Points 10138

La façon la plus courante de procéder est de mettre à jour le fichier outDir la propriété dans .angular-cli.json .

El ng build argument de commande --output-path (o -op pour faire court) est toujours supporté également, ce qui peut être utile si vous voulez plusieurs valeurs, vous pouvez les sauvegarder dans vos package.json en tant que scripts npm.

Attention : Le site .angular-cli.json La propriété n'est PAS appelée output-path comme le réponse actuellement acceptée de @cwill747 dit. C'est le ng build argument uniquement.

Ça s'appelle outDir comme mentionné ci-dessus, et c'est un sous la apps propriété.

.

P.S.

(décembre 2017)

1 an après avoir ajouté cette réponse quelqu'un a ajouté une nouvelle réponse contenant essentiellement les mêmes informations, et le posteur initial a modifié la réponse acceptée pour la remplacer par la réponse datant d'un an et contenant les mêmes informations à la première ligne de celle-ci.

3 votes

Est-il possible de placer l'index.html dans le dossier ./location/toYour/dist et les bundles JavaScript dans un sous-répertoire, par exemple ./location/toYour/dist/bundles ?

3 votes

Il est probablement en train de promouvoir son ami ici, c'est de la corruption.

84voto

Christoph Lütjen Points 772

Pour Angular 6+, les choses ont un peu changé.

Définir où ng build génère les fichiers d'application

La configuration de Cli se fait maintenant dans angular.json (remplacé par .angular-cli.json) dans le répertoire racine de votre espace de travail. Le chemin de sortie dans le fichier angular.json par défaut devrait ressembler à ceci (lignes non pertinentes supprimées) :

{
  "projects": {
    "my-app-name": {
    "architect": {
      "options": {
         "outputPath": "dist/my-app-name",

Évidemment, cela va générer votre application dans WORKSPACE/dist/my-app-name. Modifiez outputPath si vous préférez un autre répertoire.

Vous pouvez écraser le chemin de sortie en utilisant des arguments de ligne de commande (par exemple, pour les travaux CI) :

ng build -op dist/example
ng build --output-path=dist/example

S.a. https://github.com/angular/angular-cli/wiki/build

Héberger une application angulaire dans un sous-répertoire

La définition du chemin de sortie indique à Angular où placer les fichiers "compilés", mais quelle que soit la façon dont vous modifiez le chemin de sortie, lorsque vous exécutez l'application, Angular continuera de supposer que l'application est hébergée dans le racine du document du serveur Web.

Pour le faire fonctionner dans un sous-répertoire, vous devrez définir le href de base.

Dans angular.json :

{
  "projects": {
    "my-app-name": {
    "architect": {
      "options": {
         "baseHref": "/my-folder/",

Cli :

ng build --base-href=/my-folder/

Si vous ne savez pas où l'application sera hébergée au moment de la construction, vous pouvez modifier la balise base dans l'index.html généré.

Voici un exemple de la façon dont nous le faisons dans notre conteneur docker :

entrypoint.sh

if [ -n "${BASE_PATH}" ]
then
  files=( $(find . -name "index.html") )
  cp -n "${files[0]}" "${files[0]}.org"
  cp "${files[0]}.org" "${files[0]}"
  sed -i "s*<base href=\"/\">*<base href=\"${BASE_PATH}\">*g" "${files[0]}"
fi

83voto

shaun bradridge Points 446

Vous pouvez mettre à jour le dossier de sortie dans .angular-cli.json :

"outDir": "./location/toYour/dist"

17 votes

Est-il possible de placer l'index.html dans le dossier ./location/toYour/dist et les bundles javascript dans un sous-répertoire, par exemple ./location/toYour/dist/bundles ?

1 votes

Quelqu'un connaît-il des mises à jour sur la personnalisation de l'outDir ? css/ ts/ dans des chemins séparés

0 votes

@fidev, regardez la clé "output" pour les actifs, cela devrait au moins fonctionner pour les fichiers css.

51voto

Marian Zburlea Points 2636

Vous pouvez aussi utiliser le CLI, comme :

ng build -prod --output-path=production

# or

ng serve --output-path=devroot

1 votes

Est-il possible d'écraser le répertoire de sortie dans angular-cli.json ?

0 votes

Il semble que cette fonctionnalité soit intégrée à cette demande de retrait : github.com/angular/angular-cli/pull/1109

17voto

cwill747 Points 113

Attention : La réponse correcte est ci-dessous. Ceci ne fonctionne plus

Créez un fichier appelé .ember-cli dans votre projet, et y inclure ce contenu :

{
   "output-path": "./location/to/your/dist/"
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X