Respostas:
Você pode atualizar a pasta de saída em .angular-cli.json:
"outDir": "./location/toYour/dist"
A forma mais atual de fazer isso é atualizar a outDir
propriedade em .angular-cli.json
.
O ng build
argumento do comando --output-path
(ou -op
abreviadamente) também é suportado, o que pode ser útil se você quiser vários valores, você pode salvá-los em seus package.json
scripts como npm.
Cuidado: a
.angular-cli.json
propriedade NÃO é chamadaoutput-path
como a resposta atualmente aceita por @ cwill747 diz. Esse é ong build
único argumento.É chamado
outDir
conforme mencionado acima e está sob aapps
propriedade.
.
(Dezembro de 2017)
1 ano após adicionar esta resposta , alguém adicionou uma nova resposta com essencialmente as mesmas informações, e o pôster original alterou a resposta aceita para a resposta com 1 ano de atraso contendo as mesmas informações na primeira linha desta.
Para Angular 6+, as coisas mudaram um pouco.
A configuração do Cli agora é feita em angular.json (substituído .angular-cli.json) no diretório raiz do seu espaço de trabalho. O caminho de saída no angular.json padrão deve ser parecido com este (linhas irrelevantes removidas):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
Obviamente, isso irá gerar seu aplicativo em WORKSPACE / dist / my-app-name. Modifique outputPath se preferir outro diretório.
Você pode substituir o caminho de saída usando argumentos de linha de comando (por exemplo, para trabalhos de CI):
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
Definir o caminho de saída dirá ao angular onde colocar os arquivos "compilados", mas, no entanto, você altera o caminho de saída, ao executar o aplicativo, o angular ainda assumirá que o aplicativo está hospedado na raiz de documentos do servidor web.
Para fazê-lo funcionar em um subdiretório, você terá que definir o href de base.
No angular.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli:
ng build --base-href=/my-folder/
Se você não sabe onde o aplicativo será hospedado no momento da construção, você pode alterar a tag base no index.html gerado.
Aqui está um exemplo de como fazemos isso em nosso contêiner 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
Você também pode usar a CLI, como:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
A única coisa que funcionou para mim foi mudar outDir
em angular-cli.json
AND src/tsconfig.json
.
Eu queria minha pasta dist fora da pasta do projeto angular. Se eu não alterasse a configuração emsrc/tsconfig.json
também, o Angular CLI lançaria avisos sempre que eu construir o projeto.
Aqui estão as linhas mais importantes ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
E ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
, o acima é feito em angular.json
e o campo é outputPath
(o tsconfig
ajuste acima permanece o mesmo). Hth
O Angular CLI agora usa arquivos de ambiente para fazer isso.
Primeiro, adicione uma environments
seção aoangular-cli.json
Algo como :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
E então, dentro do arquivo de ambiente ( environments/environment.prod.ts
neste caso), adicione algo como:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
agora quando você executa:
ng build --prod
ele será enviado para a ./whatever/dist/
pasta.
angular-cli: 1.0.0-beta.21
para páginas do github que eu uso
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Isso é o que copia a saída para a pasta docs: --output-path=docs
Outra opção seria definir o caminho do webroot para a pasta angular cli dist. Em seu Program.cs ao configurar o WebHostBuilder basta dizer
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
ou qualquer que seja o caminho para o seu diretório dist.