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?

CursorでAIが.envファイルを見つけられない問題を解決する

Posted at

最近、VS Code 派生の AI エディタ「Cursor」を使っていて、

「.env をファイルは参照できません」

と AI に言われて、
「えっ?そこにいるじゃん?!」となりました。

この記事は、

  • .env が Cursor から無視される現象
  • defaultSettings.json を眺めて「これだ!」と思ったけど編集できない
  • 最終的に ユーザー設定(settings.json)で override して解決した流れ

AI に泣きついた試行錯誤ログ**としてまとめた記事です。

前提:.envとかをgitやcursorにあげてはいけないのですが、個人のテスト開発なのでAIに一緒に編集してもらった方が楽ということです。


■ 環境

  • macOS
  • Cursor(VS Code 派生)
  • プロジェクト直下に .env が存在

.env には DB 接続情報など、いわゆる機密情報が入っています。

# .env(一部)
DB_HOST=example.rds.amazonaws.com
DB_USER=admin
DB_PASSWORD=super-secret
DB_NAME=growhub

■ 症状:「Cursor が .env を見えないと言う」

AI にプロジェクト構成のレビューを依頼したところ…

.env ファイルは存在しません

と返されました。

当然、あります。


■ 第1ステップ:普通に VS Code 的な問題を疑う

最初に疑ったのはこのへん:

  • .gitignore 経由で隠れている?
  • files.exclude or search.exclude
  • ワークスペースのルートが違う?

全部チェック。

  • .env はエクスプローラーに見える
  • exclude 設定にもない
  • ターミナル ls -la でも存在している

それでも Cursor だけが「見えない」と言う。


■ 第2ステップ:AI「files.exclude を見てください」

AI からこんな回答が来た:

  1. もし以下のような除外が入っていたら消すか false にします。
{
  "files.exclude": {
    "**/.env": false,
    "**/.env*": false,
    "**/.*": false
  },
  "search.exclude": {
    "**/.env": false,
    "**/.env*": false
  }
}

でもそんな項目はなかったので.envという記述で検索するとdefaultSettings.jsonの中に以下の記述があります。

	// Global list of files to always ignore in Cursor features, across all workspaces. Uses glob patterns. These patterns have the same effect as adding them to a .cursorignore file in every workspace.
	"cursor.general.globalCursorIgnoreList": [
		"**/.env",
		"**/.env.*",
        以下略
        ],

完全に犯人。ありがとう。


■ 第3ステップ:defaultSettings.json を編集しようとして詰む

即座に修正しようとして発覚した事実:

  • defaultSettings.json は編集できない

VS Code の “Default Settings” と同じ扱いで読み取り専用。

ここでまた嘆く。

「編集できないんだけど!!!」


■ 第4ステップ:正解は “settings.json(ユーザー設定)で override する” だった

AI に言われて初めて気づいたやつ:

  • デフォルトは書き換えず、ユーザー設定で上書きするのが正規ルート

なので、ユーザ設定のjsonに「cursor.general.globalCursorIgnoreList」の項目を追記して、設定をオーバーライドするということです。

● 手順

1. 設定画面を開く

Cmd + ,

2. 右上の Open Settings (JSON)

これが編集可能な settings.json
「ユーザー設定」というやつです。

3. .env を ignore から外す設定を書き換える

(おすすめ版:.env以外の秘密鍵は引き続き無視する)
以下の記述を追加すると元の設定と比べて「.env」関連だけが無視対象から外れます。

{
  "cursor.general.globalCursorIgnoreList": [
    "**/credentials.json",
    "**/credentials.*.json",
    "**/secret.json",
    "**/secrets.json",
    "**/*.key",
    "**/*.pem",
    "**/*.pfx",
    "**/*.p12",
    "**/*.crt",
    "**/*.cer",
    "**/id_rsa",
    "**/id_dsa",
    "**/.ssh/id_*"
  ]
}

4. Reload

Cmd + Shift + P → Reload Window

● するとどうなるか?

AI に確認したら…

「.env が2つ存在しています」

ついに成功 🎉


■ セキュリティ補足:.env を AI に見せるのは危険(本番はNG)

ここまでやっておいて何ですが、

本番 .env を AI に読ませるのは基本NGです。

理由:

  • APIキー・DBパスワードをクラウドAIに送ることになる
  • 万が一ログに残ったら取り返しがつかない

なので、

.env.example を使う

or

◎ 必要な行だけコピペする

のが安全。


■ まとめ

  • Cursor が .env を見ない原因は
    cursor.general.globalCursorIgnoreList による一括 ignore
  • defaultSettings.json は編集できない
  • ユーザー設定(settings.json)で override するのが正解
  • .env を AI に見せるときは慎重に!!!

最後にもう一度:

「できないよ〜!」と嘆きながら調べたら、
ちゃんと AI が道案内してくれました。

同じところでハマった人の助けになれば幸いです。

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?