Rumah  >  Artikel  >  hujung hadapan web  >  Perbandingan path.join dan path.resolve dalam nodej, mari kita bincangkan tentang perbezaannya

Perbandingan path.join dan path.resolve dalam nodej, mari kita bincangkan tentang perbezaannya

青灯夜游
青灯夜游ke hadapan
2021-11-23 18:26:253329semak imbas

Artikel ini akan membawa anda melalui path.join dan path.resolve dalam nodejs, dan memperkenalkan perbezaan antara path.join dan path.resolve, saya harap ia akan membantu semua orang!

Perbandingan path.join dan path.resolve dalam nodej, mari kita bincangkan tentang perbezaannya

Saya percaya semua orang sudah biasa dengan dua kaedah ini path.join dan path.resolve Apabila kita menulis nod atau mengkonfigurasi pek web Semua telah menggunakan kaedah ini . Sebagai contoh, perenggan berikut:

output: {
   path: Path.join(__dirname, "dist"),
   filename: "[name]_[chunkhash:8].js"
}

Tetapi adakah anda tahu perbezaan antara keduanya. Hari ini saya akan bercakap tentang perbezaan dan penggunaan antara keduanya.

Biar saya mulakan dengan mengatakan bahawa path ialah modul terbina dalam dalam node kami, dan kedua-dua kaedah ini disediakan di bawah modul path.

Path.resolve

Perbandingan path.join dan path.resolve dalam nodej, mari kita bincangkan tentang perbezaannya

Bukan omong kosong, mari mulakan dengan gambar. Kita dapat melihat bahawa kaedah resolve menerima parameter tanpa had dan kesemuanya adalah rentetan jenis Nilai pulangan kaedah ini juga daripada jenis string (ia adalah laluan).

Chestnut:

// 这里我们就当__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") // 输出:报错,参数一定要字符串类型的!

Daripada chestnut di atas kita dapat melihat bahawa parameter boleh sewenang-wenangnya dan nilai pulangan adalah laluan (jenis rentetan). Walau bagaimanapun, keputusan di atas ialah apabila kita menemui / yang merupakan laluan akar dalam parameter kami, laluan nilai pulangan akan berubah dengan ketara. Perubahannya ialah: nilai kejadian terakhir / laluan akar ialah permulaan laluan semasa.

Path.join

Perbandingan path.join dan path.resolve dalam nodej, mari kita bincangkan tentang perbezaannya

join kaedah adalah sama dengan kaedah resolve, menerima parameter tanpa had dan nilai pulangan juga merupakan jenis rentetan. joinSeperti namanya, ia bermaksud penyambungan. Mari kita lihat penggunaan join

Chestnut:

// 这里我们就当__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

Melalui chestnut di atas kita dapat melihat bahawa kaedah join hanyalah laluan penyambungan, dan ia tidak akan jadilah seperti resolve Apabila akar / ditemui, keseluruhan laluan akan diganti secara langsung dan direktori hanya akan melompat keluar daripada laluan relatif .. dan ../ standard.

Perbezaan antara keduanya

Melalui dua buah berangan di atas, saya percaya anda boleh merumuskan perbezaan antara keduanya. Secara terang-terangan, kaedah resolve secara langsung menukar laluan akar, manakala kaedah join hanya akan menggabungkan semua parameter bersama-sama untuk membentuk laluan yang lengkap (sudah tentu, pertemuan .. atau ../ akan melompat keluar dari direktori semasa).

Konfigurasi ini masih digunakan di banyak tempat dalam pembangunan sebenar Kadangkala apabila kita menulis rentetan ../src/index.html dan ia tidak berkesan, kita boleh mencuba resove atau join.

Selesai! Sekadar berkongsi di sini, semoga dapat menambah ilmu kepada semua Jika bermanfaat, sila like artikel ini dan baca, supaya lebih ramai dapat melihat

Untuk lebih banyak ilmu berkaitan nod, sila Lawati: tutorial nodejs! !

Atas ialah kandungan terperinci Perbandingan path.join dan path.resolve dalam nodej, mari kita bincangkan tentang perbezaannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam