Câu trả lời:
Bạn có thể cập nhật thư mục đầu ra trong .angular-cli.json:
"outDir": "./location/toYour/dist"
Cách hiện tại hơn là cập nhật thuộc outDir
tính vào .angular-cli.json
.
Đối ng build
số lệnh --output-path
(hay gọi -op
tắt là) cũng vẫn được hỗ trợ, điều này có thể hữu ích nếu bạn muốn có nhiều giá trị, bạn có thể lưu chúng trong package.json
tập lệnh npm của mình .
Cẩn thận: Các
.angular-cli.json
tài sản không được gọioutput-path
như câu trả lời hiện đang được chấp nhận bởi @ cwill747 nói. Đó chỉ làng build
lập luận.Nó được gọi
outDir
như đã đề cập ở trên, và nó là một thuộcapps
tính.
.
(Tháng 12 năm 2017)
1 năm sau khi thêm câu trả lời này , ai đó đã thêm một câu trả lời mới với thông tin về cơ bản giống nhau và Người đăng ban đầu đã thay đổi câu trả lời được chấp nhận thành câu trả lời trễ 1 năm có cùng thông tin trong dòng đầu tiên của câu trả lời này.
Đối với Angular 6+, mọi thứ đã thay đổi một chút.
Thiết lập Cli hiện đã được thực hiện trong angle.json (thay thế .angular-cli.json) trong thư mục gốc không gian làm việc của bạn. Đường dẫn đầu ra trong angle.json mặc định sẽ trông như thế này (đã loại bỏ các dòng không liên quan):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
Rõ ràng, điều này sẽ tạo ứng dụng của bạn trong WORKSPACE / dist / my-app-name. Sửa đổi outputPath nếu bạn thích một thư mục khác.
Bạn có thể ghi đè đường dẫn đầu ra bằng cách sử dụng các đối số dòng lệnh (ví dụ: đối với các công việc CI):
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
Đặt đường dẫn đầu ra, sẽ cho góc biết vị trí đặt các tệp "đã biên dịch" nhưng tuy nhiên bạn thay đổi đường dẫn đầu ra, khi chạy ứng dụng, angle sẽ vẫn cho rằng ứng dụng được lưu trữ trong gốc tài liệu của máy chủ web.
Để làm cho nó hoạt động trong một thư mục con, bạn sẽ phải đặt href cơ sở.
Trong angle.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli:
ng build --base-href=/my-folder/
Nếu bạn không biết nơi ứng dụng sẽ được lưu trữ trong thời gian xây dựng, bạn có thể thay đổi thẻ cơ sở trong index.html đã tạo.
Đây là một ví dụ về cách chúng tôi thực hiện điều đó trong bộ chứa docker của chúng tôi:
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
Bạn cũng có thể sử dụng CLI, như:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
Điều duy nhất phù hợp với tôi là thay đổi outDir
cả angular-cli.json
VÀ src/tsconfig.json
.
Tôi muốn thư mục phân phối của mình bên ngoài thư mục dự án góc cạnh. Nếu tôi cũng không thay đổi cài đặt src/tsconfig.json
, Angular CLI sẽ đưa ra cảnh báo bất cứ khi nào tôi xây dựng dự án.
Đây là những dòng quan trọng nhất ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
Và ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
, ở trên được thực hiện trong angular.json
và trường outputPath
( tsconfig
điều chỉnh ở trên vẫn giữ nguyên). Hth
Angular CLI hiện sử dụng các tệp môi trường để thực hiện việc này.
Đầu tiên, hãy thêm một environments
phần vàoangular-cli.json
Cái gì đó như :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
Và sau đó bên trong tệp môi trường ( environments/environment.prod.ts
trong trường hợp này), thêm một cái gì đó như:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
bây giờ khi bạn chạy:
ng build --prod
nó sẽ xuất ra ./whatever/dist/
thư mục.
angular-cli: 1.0.0-beta.21
cho các trang github mà tôi sử dụng
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Đây là những gì sao chép đầu ra vào thư mục tài liệu: --output-path=docs
Một tùy chọn khác là đặt đường dẫn webroot vào thư mục cli dist góc. Trong Program.cs của bạn khi định cấu hình WebHostBuilder chỉ cần nói
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
hoặc bất cứ điều gì đường dẫn đến dir dist của bạn.