0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

package.json に勝手に "file:フォルダ名" が復活する原因とその解決法

Posted at

package.json及び package-lock.json に以下のような記述が勝手に追加される/削除しても復活するという現象に悩まされました:

"dependencies": {
  "my-local-package": "file:"
}

このような "file:○○" は、ローカルのフォルダを npm パッケージとしてリンクしている状態を意味します。
例えば、ローカルにある my-local-package フォルダをリンクした状態だと、上記のように package.json に自動的に追加されます。

しかし、意図的に削除しても再び勝手に追加されてしまうことがあります。

🤔 なぜ勝手に戻ってくるの?

これは、過去に npm link や npm install ../path/to/folder などでローカルパッケージをリンクした履歴が残っており、
そのリンク情報が node_modules や package-lock.json に保持されているためです。

解決方法:npm unlink を使う。

⬇️ 手順

  1. package.json と package-lock.json のあるプロジェクトルートに移動
  2. npm unlink でリンク解除
npm unlink my-local-package

3.不要なら node_modules と package-lock.json を削除してクリーンにする(オプション)

rm -rf node_modules package-lock.json
npm install

4.package.json から "file:..." の記述を削除

📝 補足

  • npm unlink は、プロジェクトとローカルパッケージとのリンクを解除するコマンドです。

  • リンクされた状態では npm install のたびに package.json が書き換えられることがあります。

  • 完全にローカルパッケージを使わない場合は、リンクを解除し、通常の npm パッケージとして扱うのが安全です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?