답변:
최신 방법은에서 outDir
속성 을 업데이트하는 것 입니다 .angular-cli.json
.
ng build
명령 인수 --output-path
(또는 -op
여러 값을 원하는 경우 유용 할 수 있습니다 여전히도 지원됩니다 짧은 경우), 당신은 당신에 저장할 수 있습니다 package.json
로 NPM 스크립트.
주의 : 이
.angular-cli.json
속성은 @ cwill747이 말하는 현재 승인 된 답변output-path
처럼 호출되지 않습니다 . 그것은 단지 논쟁입니다.ng build
outDir
위에서 언급 한대로 호출 되며apps
속성 아래에 있습니다.
.
(2017 년 12 월)
이 답변을 추가 한 지 1 년 후 누군가가 본질적으로 동일한 정보로 새로운 답변을 추가했으며 Original Poster는 수락 된 답변을이 답변의 첫 번째 줄에 동일한 정보를 포함하는 1 년 후 답변으로 변경했습니다.
Angular 6+의 경우 약간 변경되었습니다.
CLI 설정은 이제 작업 공간 루트 디렉토리의 angular.json (.angular-cli.json으로 대체 됨)에서 수행됩니다 . 기본 angular.json의 출력 경로는 다음과 같아야합니다 (관련없는 줄이 제거됨).
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
분명히 이것은 WORKSPACE / dist / my-app-name에 앱을 생성합니다. 다른 디렉토리를 선호하는 경우 outputPath를 수정하십시오.
명령 줄 인수를 사용하여 출력 경로를 덮어 쓸 수 있습니다 (예 : CI 작업의 경우).
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
출력 경로를 설정하면 "컴파일 된"파일을 배치 할 위치를 angular에 알려 주지만 출력 경로를 변경하면 앱을 실행할 때 angular는 여전히 앱이 웹 서버의 문서 루트에서 호스팅된다고 가정합니다.
하위 디렉토리에서 작동하게하려면 기본 href를 설정해야합니다.
angular.json에서 :
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli :
ng build --base-href=/my-folder/
빌드시 앱이 호스팅 될 위치를 모르는 경우 생성 된 index.html에서 기본 태그를 변경할 수 있습니다.
다음은 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
다음과 같이 CLI를 사용할 수도 있습니다.
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
나를 위해 일한 유일한 것은 AND outDir
모두에서 변경하는 것입니다 .angular-cli.json
src/tsconfig.json
각도 프로젝트 폴더 외부에 내 dist 폴더를 원했습니다. 설정을 변경하지 않으면 src/tsconfig.json
Angular CLI는 프로젝트를 빌드 할 때마다 경고를 표시합니다.
다음은 가장 중요한 라인입니다 ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
그리고 ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
, 위의 작업은에서 수행되고 angular.json
필드는입니다 outputPath
( tsconfig
위의 조정은 동일하게 유지됨). 제 H
Angular CLI는 이제 환경 파일을 사용하여이를 수행합니다.
먼저 environments
섹션을angular-cli.json
다음과 같은 것 :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
그런 다음 환경 파일 ( environments/environment.prod.ts
이 경우) 내부 에 다음과 같이 추가합니다.
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
이제 실행할 때 :
ng build --prod
./whatever/dist/
폴더로 출력됩니다 .
angular-cli: 1.0.0-beta.21
내가 사용하는 github 페이지의 경우
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
이것은 출력을 docs 폴더로 복사하는 것입니다. --output-path=docs