ฉันต้องการใช้ angular-cli กับแกน asp.net และฉันต้องการทราบว่าฉันจะเปลี่ยนเส้นทางของโฟลเดอร์dist ได้อย่างไร
ฉันต้องการใช้ angular-cli กับแกน asp.net และฉันต้องการทราบว่าฉันจะเปลี่ยนเส้นทางของโฟลเดอร์dist ได้อย่างไร
คำตอบ:
คุณสามารถอัพเดตโฟลเดอร์ผลลัพธ์ใน .angular-cli.json:
"outDir": "./location/toYour/dist"
วิธีที่เป็นปัจจุบันมากขึ้นนี้คือการปรับปรุงสถานที่ให้บริการในoutDir
.angular-cli.json
ng build
โต้แย้งคำสั่ง--output-path
(หรือ-op
สั้น) ยังคงได้รับการสนับสนุนด้วยซึ่งจะเป็นประโยชน์ถ้าคุณต้องการค่าหลายรายการคุณสามารถบันทึกไว้ในคุณpackage.json
เป็นสคริปต์ NPM
ระวัง:
.angular-cli.json
คุณสมบัติไม่ได้เรียกว่าoutput-path
เหมือนคำตอบในปัจจุบันได้รับการยอมรับโดย @ cwill747กล่าวว่า นั่นคือng build
ข้อโต้แย้งเท่านั้นเรียกว่า
outDir
ตามที่กล่าวไว้ข้างต้นและอยู่ภายใต้apps
คุณสมบัติ
.
(ธันวาคม 2560)
1 ปีหลังจากเพิ่มคำตอบนี้มีคนเพิ่มคำตอบใหม่ที่มีข้อมูลเดิมเป็นหลักและผู้โพสต์ต้นฉบับได้เปลี่ยนคำตอบที่ยอมรับเป็นคำตอบช้าไป 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
สาhttps://github.com/angular/angular-cli/wiki/build
การตั้งค่าพา ธ เอาต์พุตจะบอกตำแหน่งเชิงมุมว่าจะวางไฟล์ "คอมไพล์" ไว้ที่ใด แต่อย่างไรก็ตามคุณเปลี่ยนเส้นทางเอาต์พุตเมื่อเรียกใช้แอพเชิงมุมจะยังถือว่าแอพนั้นโฮสต์อยู่ในรูทเอกสารของเว็บเซิร์ฟเวอร์
เพื่อให้มันทำงานในไดเรกทอรีย่อยคุณจะต้องตั้งค่า href พื้นฐาน
ใน angular.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
คลิ:
ng build --base-href=/my-folder/
หากคุณไม่ทราบว่าจะโฮสต์แอปไว้ที่ใดในเวลาสร้างคุณสามารถเปลี่ยนแท็กฐานใน index.html ที่สร้างขึ้น
นี่คือตัวอย่างวิธีที่เราทำในคอนเทนเนอร์นักเทียบท่าของเรา:
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
สิ่งเดียวที่ทำงานสำหรับฉันคือการเปลี่ยน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
ปรับปรุงด้านบนยังคงเหมือนเดิม) Hth
ระวัง:คำตอบที่ถูกต้องอยู่ด้านล่าง วิธีนี้ใช้ไม่ได้อีกต่อไป
สร้างไฟล์ที่เรียกว่า.ember-cli
ในโครงการของคุณและรวมไว้ในเนื้อหาเหล่านี้:
{
"output-path": "./location/to/your/dist/"
}
ตอนนี้ 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
อีกทางเลือกหนึ่งคือกำหนดเส้นทาง webroot ไปยังโฟลเดอร์ angular cli dist ใน Program.cs ของคุณเมื่อกำหนดค่า WebHostBuilder เพียงแค่พูด
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
หรือเส้นทางไปยัง dir ของคุณคืออะไร