Risposte:
Puoi aggiornare la cartella di output in .angular-cli.json:
"outDir": "./location/toYour/dist"
Il modo più attuale per farlo è aggiornare la outDir
proprietà in .angular-cli.json
.
L' ng build
argomento del comando --output-path
(o -op
in breve) è ancora supportato, il che può essere utile se vuoi più valori, puoi salvarli nei tuoi package.json
script come npm.
Attenzione: la
.angular-cli.json
proprietà NON viene chiamataoutput-path
come dice la risposta attualmente accettata da @ cwill747 . Questo èng build
solo l' argomento.Si chiama
outDir
come accennato in precedenza ed è sotto laapps
proprietà.
.
(Dicembre 2017)
1 anno dopo aver aggiunto questa risposta , qualcuno ha aggiunto una nuova risposta con essenzialmente le stesse informazioni e il poster originale ha cambiato la risposta accettata nella risposta con 1 anno di ritardo contenente le stesse informazioni nella prima riga di questa.
Per Angular 6+ le cose sono leggermente cambiate.
L'impostazione di Cli ora viene eseguita in angular.json (sostituito .angular-cli.json) nella directory principale dell'area di lavoro. Il percorso di output in angular.json predefinito dovrebbe essere simile a questo (righe irrilevanti rimosse):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
Ovviamente, questo genererà la tua app in WORKSPACE / dist / my-app-name. Modifica outputPath se preferisci un'altra directory.
È possibile sovrascrivere il percorso di output utilizzando gli argomenti della riga di comando (ad esempio per i lavori CI):
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
L'impostazione del percorso di output, dirà ad angular dove posizionare i file "compilati" ma comunque si modifichi il percorso di output, quando si esegue l'app, angular presumerà comunque che l'app sia ospitata nella radice dei documenti del server web.
Per farlo funzionare in una sottodirectory, dovrai impostare il valore href di base.
In angular.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli:
ng build --base-href=/my-folder/
Se non sai dove sarà ospitata l'app in fase di compilazione, puoi modificare il tag di base in index.html generato.
Ecco un esempio di come lo facciamo nel nostro container 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
Puoi anche usare la CLI, come:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
L'unica cosa che ha funzionato per me è stata cambiare outDir
sia in angular-cli.json
AND src/tsconfig.json
.
Volevo la mia cartella dist fuori dalla cartella del progetto angolare. Se non avessi modificato anche l'impostazione src/tsconfig.json
, la CLI di Angular lanciava avvisi ogni volta che costruisco il progetto.
Ecco le righe più importanti ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
E ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
, quanto sopra viene eseguito angular.json
e il campo è outputPath
(la tsconfig
regolazione sopra rimane la stessa). Hth
La CLI angolare ora utilizza i file di ambiente per farlo.
Innanzitutto, aggiungi una environments
sezione al fileangular-cli.json
Qualcosa di simile a :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
E poi all'interno del file di ambiente ( environments/environment.prod.ts
in questo caso), aggiungi qualcosa come:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
ora quando corri:
ng build --prod
verrà prodotto nella ./whatever/dist/
cartella.
angular-cli: 1.0.0-beta.21
per le pagine GitHub che uso
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Questo è ciò che copia l'output nella cartella dei documenti: --output-path=docs
Un'altra opzione sarebbe quella di impostare il percorso webroot nella cartella angular cli dist. Nel tuo Program.cs quando configuri il WebHostBuilder dì solo
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
o qualunque sia il percorso per la tua dist dir.