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!
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
.
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.
join
kaedah adalah sama dengan kaedah resolve
, menerima parameter tanpa had dan nilai pulangan juga merupakan jenis rentetan. join
Seperti 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.
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!