728x90
커리어리에 Knip을 소개 해주신 분이 있어서 한 번 사용해봤는데 꽤 유용하다. 제목 그대로
자바스크립트와 타입스크립트에서 사용하지 않는 파일, Dependencies, exports를 찾아준다.
공식 홈페이지를 가보면 아주 단순하고 사용법도 너무 간단해서 Typescript 대표 오픈소스인 Vscode를 clone해서 사용해봤습니다.
1. 설치
yarn add -D knip
2. 스크립트 제공
{
"scripts": {
...,
"knip": "knip"
}
}
3. 실행 결과
- Unused files
Unused files (3953)
.eslintplugin/code-amd-node-module.ts
.eslintplugin/code-declare-service-brand.ts
.eslintplugin/code-ensure-no-disposables-leak-in-test.ts
src/vs/editor/common/services/getIconClasses.ts
src/vs/editor/common/services/languageFeatureDebounce.ts
src/vs/editor/common/services/languageFeatures.ts
src/vs/editor/common/services/languageFeaturesService.ts
src/vs/editor/common/services/languageService.ts
src/vs/editor/common/services/languagesAssociations.ts
src/vscode-dts/vscode.proposed.treeViewMarkdownMessage.d.ts
src/vscode-dts/vscode.proposed.treeViewReveal.d.ts
src/vscode-dts/vscode.proposed.tunnelFactory.d.ts
...
- Unused dependencies & devDependencies
Unused dependencies (33)
@microsoft/1ds-post-js package.json
@parcel/watcher package.json
@vscode/policy-watcher package.json
@vscode/proxy-agent package.json
@vscode/ripgrep package.json
@vscode/spdlog package.json
@vscode/sqlite3 package.json
@vscode/sudo-prompt package.json
...
Unused devDependencies (61)
@swc/core package.json
@types/cookie package.json
@types/debug package.json
@types/graceful-fs package.json
@types/gulp-postcss package.json
@types/gulp-svgmin package.json
@types/http-proxy-agent package.json
@types/kerberos package.json
@types/trusted-types package.json
@types/wicg-file-system-access package.json
...
- Unused exports
Unused exports in namespaces (41)
packageLocalExtensionsStream function build/lib/extensions.ts:329:17
packageMarketplaceExtensionsStream function build/lib/extensions.ts:372:17
scanBuiltinExtensions function build/lib/extensions.ts:406:17
translatePackageJSON function build/lib/extensions.ts:443:17
webpackExtensions function build/lib/extensions.ts:480:23
buildExtensionMedia function build/lib/extensions.ts:580:23
fixWin32DirectoryPermissions function build/lib/util.ts:115:17
toFileUri function build/lib/util.ts:152:17
skipDirectories function build/lib/util.ts:162:17
JavaScript ProjectType extensions/typescript-language-features/src/tsconfig.ts:16:2
...
Unused exported types (133)
IGitHubAssetOptions interface build/lib/fetch.ts:116:18
IFetchOptions interface build/lib/fetch.ts:14:18
Language interface build/lib/i18n.ts:23:18
InnoSetup interface build/lib/i18n.ts:29:18
Resource interface build/lib/i18n.ts:58:18
...
Unused exported enum members (52)
NotAtRepositoryRoot GitErrorCodes extensions/git/src/api/git.d.ts:373:2
CantOpenResource GitErrorCodes extensions/git/src/api/git.d.ts:382:2
GitNotFound GitErrorCodes extensions/git/src/api/git.d.ts:383:2
IsInSubmodule GitErrorCodes extensions/git/src/api/git.d.ts:397:2
INDEX_DELETED Status extensions/git/src/api/git.d.ts:81:2
...
인간이기에 놓치는 부분이 생기는데 Microsoft사의 vscode조차 이런 일이 발생하네요.
GitHub Actions라도 붙혀놓고 지속적인 관리를 한다면 관리포인트가 줄지 않을까 싶습니다 😁
'software engineering > javascript' 카테고리의 다른 글
JavaScript 개발자를 위한 객체 속성 삭제 전략: undefined vs delete (0) | 2024.01.01 |
---|---|
using, satisfies in typescript (1) | 2023.10.30 |
forEach is BAD! (0) | 2023.10.03 |
Package Manager 뭐 써볼까? (0) | 2023.09.21 |
void 언제 쓸까? (0) | 2023.08.27 |