Rumah > hujung hadapan web > tutorial js > 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

青灯夜游
Lepaskan: 2021-11-24 09:33:51
ke hadapan
3386 orang telah melayarinya

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"
}
Salin selepas log masuk

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") // 输出:报错,参数一定要字符串类型的!
Salin selepas log masuk

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
Salin selepas log masuk

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!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan