Tôi đã thử sử dụng "ng hủy thành phần foo" và nó cho tôi biết "Lệnh hủy không được hỗ trợ bởi Angular-CLI"
Làm thế nào để chúng ta xóa đúng các thành phần với Angular CLI?
Tôi đã thử sử dụng "ng hủy thành phần foo" và nó cho tôi biết "Lệnh hủy không được hỗ trợ bởi Angular-CLI"
Làm thế nào để chúng ta xóa đúng các thành phần với Angular CLI?
Câu trả lời:
destroy
hoặc một cái gì đó tương tự có thể đến với CLI, nhưng nó không phải là trọng tâm chính tại thời điểm này. Vì vậy, bạn sẽ cần phải làm điều này bằng tay.
Xóa thư mục thành phần (giả sử bạn không sử dụng --flat
) và sau đó xóa nó khỏi thư mục NgModule
được khai báo.
Nếu bạn không chắc chắn phải làm gì, tôi khuyên bạn nên có một ứng dụng "sạch" nghĩa là không có git
thay đổi hiện tại . Sau đó tạo một thành phần và xem những gì được thay đổi trong repo để bạn có thể quay lại từ đó những gì bạn sẽ cần phải làm để xóa một thành phần.
Nếu bạn chỉ đang thử nghiệm những gì bạn muốn tạo, bạn có thể sử dụng --dry-run
cờ để không tạo bất kỳ tệp nào trên đĩa, chỉ cần xem danh sách tệp được cập nhật.
Vì nó chưa được hỗ trợ bằng CLI góc
Vì vậy, đây là cách có thể, trước đó, vui lòng quan sát điều gì xảy ra khi bạn tạo một thành phần / dịch vụ bằng CLI (ví dụ ng g c demoComponent
).
demoComponent
( ng g c demoComponent
).HTML,CSS,ts
và một spec
tệp dành riêng cho demoComponent.do đó, làm theo thứ tự ngược lại
app.module.ts
khi loại bỏ sự phụ thuộc bạn phải làm hai việc.
Hiện tại Angular CLI không hỗ trợ tùy chọn xóa thành phần, bạn cần thực hiện thủ công.
Tôi đã viết một tập lệnh bash sẽ tự động hóa quá trình được viết bởi Yakov Fain bên dưới. Nó có thể được gọi là ./removeComponent myComponentName Điều này chỉ được thử nghiệm với Angular 6
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Input a component to delete"
exit 1
fi
# finds folder with component name and deletes
find . -type d -name $1 | xargs rm -rf
# removes lines referencing the component from app.module.ts
grep -v $1 app.module.ts > temp
mv temp app.module.ts
componentName=$1
componentName+="Component"
grep -v -i $componentName app.module.ts > temp
mv temp app.module.ts
Tôi không chắc đó có phải là cách tốt nhất không, nhưng nó hiệu quả với tôi.
Tôi chỉ lưu và làm mới ứng dụng và nó hoạt động.
Trả lời cho góc 2+
Xóa thành phần from imports and declaration array
của app.modules.ts.
Kiểm tra thứ hai tham chiếu của nó được thêm vào trong mô-đun khác, nếu có thì loại bỏ nó và
cuối cùng delete that component Manually
từ ứng dụng và bạn đã hoàn thành.
Hoặc bạn có thể làm điều đó theo thứ tự ngược lại cũng có.
Từ app.module.ts:
Sau đó xóa các thư mục của các thành phần bạn muốn xóa và các tập tin bao gồm nó ( .component.ts
, .component.html
, .component.css
và .component.spec.ts
).
Làm xong.
-
Tôi đọc mọi người nói về việc xóa nó khỏi main.ts. Bạn không cần phải nhập nó từ đó ngay từ đầu vì nó đã nhập AppModule và AppModule là phần nhập tất cả các thành phần bạn đã tạo.
Tôi cần xóa một chỉ thị Angular 6 có tệp spec bị lỗi. Ngay cả sau khi xóa các tệp vi phạm, xóa tất cả các tham chiếu đến nó và xây dựng lại ứng dụng, TS vẫn báo cáo lỗi tương tự. Điều làm việc cho tôi là khởi động lại Visual Studio - điều này đã xóa lỗi và tất cả dấu vết của chỉ thị không mong muốn cũ.
Nếu bạn đang tìm kiếm một số lệnh trong CLI, thì bây giờ ans là KHÔNG . Nhưng bạn có thể làm thủ công bằng cách xóa thư mục thành phần và tất cả các tham chiếu.
Điều này không được hỗ trợ bởi Angular CLI và họ không có tâm trạng để sớm đưa nó vào bất cứ lúc nào.
Đây là liên kết đến vấn đề được tạo thực tế - https://github.com/angular/angular-cli/issues/1776
git checkout src
).