1. ホーム
  2. node.js

[解決済み] [path.resolveとpath.joinの違いは何ですか?

2022-03-31 06:27:08

質問

次のような起動の仕方は、何か違いがあるのでしょうか?

path.join(__dirname, 'app')

vs.

path.resolve(__dirname, 'app')

どちらを優先すべきでしょうか?

どのように解決するのですか?

で始まるセグメントを扱う2つの関数です。 / は、まったく異なる方法で join は前の引数と連結されるだけですが resolve を実行すると、これをルートディレクトリとして扱い、それ以前のパスはすべて無視されます。 cd を各引数で指定します。

path.join('/a', '/b') // Outputs '/a/b'

path.resolve('/a', '/b') // Outputs '/b'

もう一つ、注意すべきは path.resolve は常に絶対URLとなり、このパスを解決するために作業ディレクトリをベースとして使用します。しかし __dirname が絶対パスであることは、あなたのケースでは問題ではありません。

どちらを使うべきかというと、それは / 単純に結合するのか、それとも新しいルートとして動作させるのか?

もし他の引数がハードコーディングされているなら、それは本当に重要ではありません。その場合、(a) この行が将来どのように変わる可能性があるか、(b) コード内の他の場所との整合性はどうか、を検討すべきでしょう。