Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Knipデモ

CodeGridの記事「Knipでプロジェクトの不要なコードを見つける」で使うデモプロジェクトです。未使用のファイル・export・依存パッケージを意図的に含めています。

必要な環境

Knip 6.27.0での検証に合わせ、Node.js 20.19.0以上、または22.12.0以上を想定しています。

セットアップと実行

npm ci
npm start

src/index.jsは環境変数LOCALEに対応するロケールファイルを読み込んで挨拶を組み立てます。既定はjaです。

こんにちは、CodeGrid!

Knipを実行する

このリポジトリにはknip.jsonを含めていません。記事の流れに沿って、まず設定なしで実行できます。

npx knip

src/index.jsはロケールファイルを動的importで読み込むため、Knipは読み込み先を静的に特定できません。その結果、実際に使われているsrc/locales/ja.jsまで未使用ファイルとして報告されます。

Unused files (2)
src/debug.js
src/locales/ja.js
Unused dependencies (1)
picocolors  package.json:13:6
Unused exports (1)
createLegacyGreeting  function  src/greeting.js:5:17

プロジェクトのルートにknip.jsonを作成し、ロケールファイルを解析の起点として伝えます。

{
  "entry": ["src/locales/*.js"]
}

もう一度実行すると、src/locales/ja.jsが消え、実際の未使用候補だけが残ります。

Unused files (1)
src/debug.js
Unused dependencies (1)
picocolors  package.json:13:6
Unused exports (1)
createLegacyGreeting  function  src/greeting.js:5:17

自動修正を試す

報告内容を確認したら、--fixで修正を自動化できます。作業ツリーをきれいにしてから実行してください。

npx knip --fix

picocolorspackage.jsonから削除され、createLegacyGreetingからexportが外れます。依存を修正したらnpm installでlockfileも更新します。未使用ファイルの削除まで許可する場合は--allow-remove-filesを付けます。

npx knip --fix --allow-remove-files

Knipの報告は削除命令ではありません。設定と差分を確認したうえで判断してください。仕組みや設定の考え方は記事で解説しています。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages