CLI를 사용하여 구성 요소를 삭제하는 가장 좋은 방법은 무엇입니까
"ng destroy component foo"를 사용하려고했는데 "angular-CLI에서 destroy 명령이 지원되지 않습니다"라고 알려줍니다.
Angular CLI를 사용하여 구성 요소를 올바르게 삭제하는 방법
destroy
또는 CLI에 비슷한 것이있을 수 있지만 현재로서는 주요한 초점이 아닙니다. 따라서이 작업을 수동으로 수행해야합니다.
구성 요소 디렉토리를 삭제하고 (사용하지 않았다고 가정 --flat
) NgModule
선언 된 위치에서 제거하십시오 .
무엇을해야할지 잘 모르겠다면 현재 git
변경 사항이 없는 "깨끗한"앱을 사용하는 것이 좋습니다 . 그런 다음 구성 요소를 생성하고 리포지토리에서 변경된 내용을 확인하여 구성 요소를 삭제하기 위해 수행해야 할 작업을 역 추적 할 수 있습니다.
최신 정보
생성하려는 항목에 대해서만 실험하고 있다면 --dry-run
플래그를 사용하여 디스크에 파일을 생성하지 않고 업데이트 된 파일 목록을 볼 수 있습니다.
- 이 구성 요소가 포함 된 폴더를 삭제하십시오.
- app.module.ts에서이 컴포넌트의 import 문을 제거하고 @NgModule의 선언 섹션에서 이름을 제거하십시오.
- index.ts에서이 구성 요소에 대한 내보내기 명령문이있는 행을 제거하십시오.
각도 CLI를 사용하여 아직 지원되지 않기 때문에
CLI를 사용하여 구성 요소 / 서비스를 만들 때 어떤 일이 발생하는지 관찰하십시오 (예 :) ng g c demoComponent
.
demoComponent
(ng g c demoComponent
) 라는 별도의 폴더를 만듭니다 .- 그것은 생성
HTML,CSS,ts
하고spec
파일 demoComponent에 전념. - 또한 app.module.ts 파일에 종속성을 추가하여 해당 구성 요소를 프로젝트에 추가합니다.
그래서 역순으로
- 에서 종속성 제거
app.module.ts
- 해당 구성 요소 폴더를 삭제하십시오.
현재 Angular CLI는 구성 요소를 제거하는 옵션을 지원하지 않으므로 수동으로 수행해야합니다.
- app.module에서 모든 구성 요소에 대한 가져 오기 참조 제거
- 구성 요소 폴더를 삭제하십시오.
Visual Studio Code를 사용하여 컴포넌트 폴더를 삭제하고 프로젝트 탐색기 (왼쪽)에서 빨간색으로 표시된 파일을 확인하십시오. 이는 파일이 영향을 받고 오류가 발생했음을 의미합니다. 각 파일을 열고 구성 요소를 사용하는 코드를 제거하십시오.
아래의 Yakov Fain이 작성한 프로세스를 자동화 해야하는 bash 스크립트를 작성했습니다. ./removeComponent myComponentName 과 같이 호출 할 수 있습니다. 이것은 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
그것이 최선의 방법인지 확실하지 않지만 그것은 나를 위해 일했습니다.
- 먼저 구성 요소 폴더를 삭제했습니다.
- 그런 다음 app.module.ts, app.component.ts & app.component.html에서 삭제하려는 구성 요소와 관련된 가져 오기 및 선언을 지 웠습니다.
- 마찬가지로 main.ts를 지 웠습니다.
방금 앱을 저장하고 새로 고쳤으며 작동했습니다.
Angular 2 이상에 대한 답변
from imports and declaration array
app.modules.ts의 구성 요소 를 제거하십시오 .
두 번째로 참조가 다른 모듈에 추가되었는지 확인하십시오.
마침내 delete that component Manually
앱에서 당신은 끝났습니다.
또는 역순으로 할 수도 있습니다.
app.module.ts에서 :
- 특정 구성 요소에 대한 가져 오기 라인을 지우십시오.
- @NgModule에서 선언을 지우십시오.
그런 다음 삭제와 포함 된 파일 할 구성 요소의 폴더를 삭제 ( .component.ts
, .component.html
, .component.css
및 .component.spec.ts
).
끝난.
-
I read people saying about erasing it from main.ts. You were not supposed to import it from there in the first place as it already imports AppModule, and AppModule is the one importing all the components you created.
First of all, remove component folder, which you have to delete and then remove its entries which you have made in "ts" files.
If you looking for some command in CLI, Then ans is NO for now. But you can do manually by deleting the component folder and all the references.
also don't forget to: - delete the component path from the routing module - search for component's class name in the whole project
I needed to delete an Angular 6 directive whose spec file was erroneous. Even after deleting the offending files, removing all references to it and rebuilding the app, TS was still reporting the same error. What worked for me was restarting Visual Studio - this cleared the error and all traces of the old unwanted directive.
참고URL : https://stackoverflow.com/questions/41354755/what-is-the-best-way-to-delete-a-component-with-cli
'IT story' 카테고리의 다른 글
Java에서 2 개의 XML 문서를 비교하는 가장 좋은 방법 (0) | 2020.05.12 |
---|---|
목록에서 정수를 올바르게 제거 (0) | 2020.05.12 |
PHP에서 구문 분석 오류가 표시되지 않는 이유는 무엇입니까? (0) | 2020.05.12 |
IIS 7, Windows 7에서 ASP.NET 4.0을 응용 프로그램 풀로 추가하는 방법 (0) | 2020.05.11 |
특정 줄만 읽기 (0) | 2020.05.11 |