2017-09-26 8 views
0

ところで、foobarは、私が見てきた文字列リテラルpath.join path.join対(__ dirnameは、 "foo" という、 "バー")(__ dirnameは、 "FOO/BAR")

だろう両方を使用するリポジトリの束、"foo/bar""foo", "bar"

は私が

suite.add('foo/bar', function() { 
    path.join(__dirname, 'foo/bar') 
}) 
.add('foo, bar', function() { 
    path.join(__dirname, 'foo', 'bar') 
}) 
.on('complete', function() { 
    console.log('Fastest is ' + this.filter('fastest').map('name')); 
}) 
.run({ 'async': true }); 

そしてfoo/barが速かった(私もgistを作った)次のコードでbenchmark jsとのベンチマークを行いました。しかし、私はまだ多くのコードを参照してくださいpath.join(__dirname, '..', '..', 'node_modules')

path.join(__dirname, 'foo', 'bar')を使用する理由はありますか?

私もpath.join()を使用して3つの主な利点がありますpath.resolve

答えて

1

について話しています。

  1. あなたは結果のパスに2枚のセパレータを一緒に取得することはありませんので、それは自動的に末尾の区切りをチェックします。

  2. プラットフォーム固有のパス区切り文字(Windowsの場合はバックスラッシュ)を自動的に使用します。

  3. セグメントを上記のロジックで結合した後、パスを正規化して、.または..セグメントを解決します。

この機能を使用する場合は、必ずpath.join()を使用してください。これらの機能のいずれかが必要ない場合は、いずれかの方法(手動のパス構築を使用するか、path.join()を使用してください)に行くことができます。

+0

したがって、 'path.join(__ dirname、" ../ path/to/dir ")'のようなものを使用するのは大丈夫ですか? – ocboogie

+0

@ocboogie - はい、そうです。 – jfriend00

+0

なぜdownvote?あなたが説明なしでドライブバイダウンワードをするだけであれば、誰かが答えを向上させる方法を知ることは難しいです。 – jfriend00

関連する問題