Skip to content
Latchkey

相対パスとは?現在地からの位置指定

相対パスは、ファイルシステムのルートではなく、現在の作業ディレクトリから始まるファイルの位置を記述します。

相対パスは、プロセスが現在いる場所から解釈されます。./src は「カレントディレクトリ内のsrc」を意味し、../ は「親ディレクトリ」を意味します。相対パスは簡潔でマシン間の移植性がありますが、CIでは作業ディレクトリが想定と異なると壊れることがあります。

相対パスとは何か

相対パスはルートから始まりません。現在の作業ディレクトリに結合することで解決されます。build/output.js は、どこで実行するかによって異なるファイルを指します。

特殊なパス要素

  • . はカレントディレクトリを指します。
  • .. は親ディレクトリを指します。
  • 先頭の ./ は「カレントディレクトリ」を明示します。

相対パス対絶対パス

相対パスは短く、ルートをハードコードしないため、異なるマシンやcheckout場所の間でうまく移動します。絶対パスは曖昧さがありませんが、特定のレイアウトに縛られます。

移植性という利点

リポジトリはどこにでもcheckoutできるため、リポジトリ内の相対パスは絶対的な場所に関係なく機能し続けます。だからこそプロジェクトの設定では通常、相対参照を使います。

CIにおける相対パス

相対パスは、各ステップが想定されたディレクトリから実行される限りうまく機能します。落とし穴は、作業ディレクトリがステップ間でリセットされ得ることで、あるステップで機能した相対パスが次のステップでは解決されないことがあります。

マネージドrunnerでの相対パスの利用

Latchkeyのrunnerでは、各ステップの作業ディレクトリを一貫して設定すれば、checkoutしたリポジトリ内の相対パスは信頼できます。迷ったら、以前のcdが持続していると仮定するのではなく、workspaceのルートにアンカーしましょう。

重要なポイント

  • 相対パスは現在の作業ディレクトリから解決されます。
  • ... はカレントディレクトリと親ディレクトリを意味します。
  • CIでは、作業ディレクトリが想定と異なると相対パスは壊れます。

関連ガイド