[解決済み] path.join と path.resolve を __dirname と比較する。
2022-03-05 17:13:10
質問
を使用した場合、何か違いがあるのでしょうか?
両方
path.join
と
path.resolve
と
__dirname
Node.jsで絶対パスを解決するために?
このような使い方をする場合、どちらを優先すべきでしょうか(絶対パス解決はユースケースの90%)?
すなわち
const absolutePath = path.join(__dirname, some, dir);
vs.
const absolutePath = path.resolve(__dirname, some, dir);
どちらの方法も、パスを正規化します。
どのように解決するのですか?
関数の違いはありますが、今回の使い方は同じ結果になります。
path.join
は、2つのパスを結合して正規化したパスを返します。絶対パスを返すこともできますが、必ずしも常にそうなるとは限りません。
例えば
path.join('app/libs/oauth', '/../ssl')
は、次のように解決されます。
app/libs/ssl
path.resolve
は絶対パスに解決されます。
例えば、実行すると
path.resolve('bar', '/foo');
返されるパスは
/foo
というのは、これが最初に構築できる絶対パスだからです。
しかし、実行すると
path.resolve('/bar/bae', '/foo', 'test');
返されるパスは
/foo/test
なぜなら、それが右から左へ形成できる最初の絶対パスだからです。
もし、ルートディレクトリを指定するパスを与えなかった場合は
resolve
関数は、現在の作業ディレクトリに追加されます。ですから、もしあなたの作業ディレクトリが
/home/mark/project/
:
path.resolve('test', 'directory', '../back');
に解決されます。
/home/mark/project/test/back
使用方法
__dirname
は、ソースファイルを含むディレクトリの絶対パスです。を使用する場合
path.resolve
または
path.join
を指定した場合、同じ結果が返されます。
__dirname
. このような場合は、本当に好みの問題です。
関連
-
[解決済み】MongoClient v3.0使用時、db.collectionは関数ではない
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み】エラー TRK0005: 位置特定に失敗しました。"CL.exe"
-
[解決済み] ReferenceError: describe は定義されていません NodeJs
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] Node.jsで現在のスクリプトのパスを取得するにはどうしたらいいですか?
-
[解決済み] node.jsの__dirnameと./の違いは何ですか?
-
[解決済み] process.cwd() と __dirname の違いは何ですか?
-
[解決済み] [path.resolveとpath.joinの違いは何ですか?
-
[解決済み】node.js vs ASP.NET Core パフォーマンステストの予期せぬ結果
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】Discord.js が特定のチャンネルにメッセージを送信する場合
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] Passport JSのreq.isAuthenticated()はどのように実装されていますか?[クローズド]
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] [path.resolveとpath.joinの違いは何ですか?