Remove GIS module from template
Note
เอกสารนี้ใช้สำหรับลบ ArcGIS SDK ออกจากโปรเจกต์ Angular ที่ใช้โครงสร้างของ AtlasX Web Template
** ควรทำขั้นตอนทั้งหมดนี้ ก่อน รันคำสั่งnpm install
รายละเอียด
การลบ ArcGIS SDK จะช่วยลดขนาดของโปรเจกต์และเวลา build หากระบบไม่ได้ใช้งานแผนที่จาก ArcGIS SDK (@arcgis/core)
ขั้นตอนที่ 1: ลบโฟลเดอร์ GIS
ลบโฟลเดอร์ src/app/gis :
src/
└── app/
├── core/
├── gis/ <----- ให้ลบโฟลเดอร์นี้ออก
├── home/
├── app-routing.module.ts
├── app.component.html
├── app.component.spec.ts
├── app.component.ts
└── app.module.tsขั้นตอนที่ 2: ลบ ArcGIS Provider ใน app.module.ts
เปิดไฟล์ src/app/app.module.ts แล้วลบบรรทัดที่เกี่ยวข้อง:
import { ArcgisJsapiProvider } from './gis/arcgisjsapi-provider'; // ลบบรรทัดนี้
...
providers: [
ArcgisJsapiProvider, // ลบบรรทัดนี้
]ขั้นตอนที่ 3: ลบ GIS Module ใน app-routing.module.ts
const routes: Routes = [
...
{ // ────
path: 'gis', // |
loadChildren: () => import('./gis/gis.module').then((m) => m.GisModule), // |
data: { // ├──> ลบส่วนนี้
systemId: 'GIS', // |
}, // |
}, // ────
]
...ขั้นตอนที่ 4: ลบ @arcgis/core จาก package.json
เปิด package.json แล้วลบบรรทัดที่เกี่ยวข้อง:
"dependencies": {
"@angular/core": "...",
"@arcgis/core": "^4.30.0", // ลบบรรทัดนี้
...
}ขั้นตอนที่ 5: ลบ ArcGIS ที่เกี่ยวข้องใน angular.json
ลบจาก build.options.assets
{
"glob": "**/*",
"input": "node_modules/@arcgis/core/assets",
"output": "/assets/"
}ลบจาก build.options.styles
"node_modules/@arcgis/core/assets/esri/themes/light/main.css"ลบจาก test.options.assets
{
"glob": "**/*",
"input": "node_modules/@arcgis/core/assets",
"output": "/assets/"
}ลบจาก test.options.styles
"node_modules/@arcgis/core/assets/esri/themes/light/main.css"ขั้นตอนที่ 6: ลบ package-lock และติดตั้ง dependency ใหม่
สำหรับ Linux / macOS / Git Bash:
rm -rf node_modules package-lock.json
npm installสำหรับ PowerShell:
Remove-Item -Recurse -Force .\node_modules, .\package-lock.json
npm installสำหรับ CMD:
rmdir /s /q node_modules
del /f /q package-lock.json
npm installขั้นตอนที่ 7: ทดสอบว่าไม่มีการเรียกใช้งาน GIS Module
รันคำสั่ง:
ng serveหากไม่มี error และแอปรันได้ตามปกติ แสดงว่าลบเรียบร้อยแล้ว