Nodejs の path.join と path.resolve の比較、その違いについて話しましょう

青灯夜游
リリース: 2021-11-24 09:33:51
転載
3197 人が閲覧しました

この記事では、nodejs の path.join と path.resolve を理解し、path.join と path.resolve の違いを紹介します。

Nodejs の path.join と path.resolve の比較、その違いについて話しましょう

これら 2 つのメソッド path.joinpath.resolve は誰もがよく知っていると思います。 node または、このメソッドは Webpack を構成するときに使用されています。たとえば、次の段落:

output: {
   path: Path.join(__dirname, "dist"),
   filename: "[name]_[chunkhash:8].js"
}
ログイン後にコピー

しかし、この 2 つの違いを知っていますか。今回はこの2つの違いと使い方についてお話します。

最初にお話しします。

pathnode の組み込みモジュールであり、これら 2 つのメソッドは path## の下に提供されます。 # モジュール。 Path.resolve

Nodejs の path.join と path.resolve の比較、その違いについて話しましょう 早速、図から始めましょう。

resolve

メソッドは無制限のパラメーターを受け取り、それらはすべて string 型であることがわかります。このメソッドの戻り値も string (パスです) 型です。 栗:

// 这里我们就当__dirname是 /root

path.resolve(__dirname, "./dist") // 输出:/root/dist

path.resolve(__dirname, "dist", "dir") // 输出:/root/dist/dir

path.resolve(__dirname, "/dist") // 输出:/dist

path.resolve(__dirname, "/dist", "../") // 输出:你的磁盘根目录

path.resolve(__dirname, "/dist", "..") // 输出:你的磁盘根目录

path.resolve(__dirname, "/dist", "..", "/test") // 输出:/test

path.resolve(__dirname, "dist", "dir", "/test") // 输出:/test

path.resolve(__dirname, "dist", null, "/test") // 输出:报错,参数一定要字符串类型的!
ログイン後にコピー

上記の栗から、パラメーターは任意であり、戻り値はパス (文字列型) であることがわかります。ただし、上記の結果は、

/

がパラメータのルート パスである場合、戻り値のパスが大きく変更されるということです。変更点は、最後に出現した / がルート パスであることです。 . path の値は、現在のパスの始まりです。

Path.join

Nodejs の path.join と path.resolve の比較、その違いについて話しましょう

join

メソッドは resolve と同じですメソッドは、無制限のパラメータを受け取り、戻り値も文字列型です。 joinその名の通り、つなぎ合わせるという意味です。 join の使用法を見てみましょう。チェストナット:

// 这里我们就当__dirname是 /root

path.join(__dirname, "dist") // 输出:/root/dist

path.join(__dirname, "dist", "/dir") // 输出:/root/dist/dir

path.join(__dirname, "dist", "/dir", "..") // 输出:/root/dist

path.join(__dirname, "dist", "/dir", "../test") // 输出:/root/dist/test

path.join(__dirname, "dist", "/dir", "/..test") // 输出:/root/dist/dir/..test

path.join(__dirname, "/dist", "..") // 输出:/root
ログイン後にコピー

上記のチェストナットを見ると、

join

メソッドはパスを結合するだけであることがわかります。 resolve のような / ルートに遭遇した場合は、パス全体を直接置き換えてジャンプしますが、それは標準の ..、## の場合のみです。 #../ 相対パスを使用する場合は、ディレクトリの外にジャンプします。 両者の違い

上記の 2 つの栗を通して、この 2 つの違いを要約できると思います。率直に言うと、resolve

メソッドはルート パスを直接変更しますが、

join メソッドはすべてのパラメーターを結合して完全なパス (もちろん . . または../は現在のディレクトリから飛び出します)。 この構成は、実際の開発の多くの場所で今でも使用されています。文字列 ../src/index.html

を書いても有効にならない場合があります。試してみることができます。

resove または joinああ。 ######以上!ここで共有してください。少しでも皆さんに知識を追加できれば幸いです。役に立った場合は、この記事に「いいね!」を押して読んでください。そうすれば、より多くの人が ノード関連の知識をもっと見ることができます。 nodejs チュートリアル

にアクセスしてください! !

以上がNodejs の path.join と path.resolve の比較、その違いについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!