Node.js Merancang untuk Menyokong Modul ES6: Pandangan Mendalam
Persekitaran masa jalan JavaScript Node.js telah lama menyokong modul CommonJS untuk memuatkan kod luaran. Walau bagaimanapun, dengan kemunculan ES6 (ECMAScript 2015), pengenalan sokongan modul asli mencetuskan persoalan: adakah Node.js akan menerima modul import/eksport?
Node.js 13.2.0 dan Beyond
Sehingga Node.js 13.2.0, sokongan untuk Modul ES telah diperkenalkan tanpa memerlukan bendera percubaan. Mendayakan sokongan modul ECMAScript (ESM) melibatkan penetapan fail package.json kepada:
{ "type": "module" }
Semua fail dengan .js, .mjs atau tiada sambungan akan dianggap sebagai ESM. Kaedah alternatif untuk mendayakan Modul ES juga tersedia dan didokumenkan dalam nota keluaran.
Node.js 13.1.0 dan Terdahulu
Untuk versi Node.js yang lebih lama, [esm](https://github.com/standard-things/esm) pemuat modul menyediakan pelaksanaan sedia pengeluaran bagi Modul ES:
node -r esm main.js
Garis Masa Pembangunan Sejarah
23 April 2019
Kemas kini mekanisme pengesanan untuk modul ECMAScript telah disepadukan, memperkenalkan pilihan untuk package.type (modul atau commonjs) dan pilihan baharu untuk menentukan titik masuk jenis dan resolusi penentu modul.
17 Januari 2019
Node.js 11.6.0 menyertakan Modul ES sebagai ciri percubaan, didayakan menggunakan bendera:
node --experimental-modules index.mjs
Rancangannya adalah untuk mengalih keluar bendera ini dalam keluaran v10.0 LTS.
13 September 2017
Node.js 8.5.0 ditambah sokongan untuk fail .mjs, boleh diakses di sebalik bendera:
node --experimental-modules index.mjs
Niat asal adalah untuk mengalih keluar bendera ini untuk keluaran v10.0 LTS.
8 September 2017
Sokongan awal untuk modul ESM telah ditambahkan pada cawangan induk Node.js, yang boleh diakses di belakang bendera --experimental-modules.
Februari 2017
Pasukan Node.js mengumumkan keputusan untuk menggunakan sambungan fail .mjs sebagai penyelesaian paling tidak mengganggu, membolehkan kewujudan bersama Modul CommonJS dan ES. Pelaksanaan dianggarkan mengambil masa sekurang-kurangnya setahun.
Oktober 2016
Selepas mesyuarat TC-39, pembangun Node.js menggariskan cabaran dalam melaksanakan Modul ES. Isu utama termasuk analisis statik lwn dinamik, tampalan monyet dan pengesanan modul. Penggunaan sambungan *.mjs muncul sebagai penyelesaian yang mungkin.
Pra-2016
Perdebatan mengenai sokongan Modul ES dalam Node.js telah berlangsung selama tempoh yang agak besar. Pelbagai cadangan dan perbincangan bertujuan untuk menangani keperluan Node.js dan HTML yang berbeza sambil menampung spesifikasi baharu.
Atas ialah kandungan terperinci Bagaimanakah Node.js telah mengembangkan sokongannya untuk Modul ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!