Jadual Kandungan
pemodulasi js
Cara menggunakan
Tetapi sebagai seseorang yang tidak memberi perhatian, mudah untuk jatuh ke dalam salah faham pengetahuan anda sendiri, Anda akan sentiasa berfikir bahawa Node.js tidak menyokong spesifikasi ESM, malah mengeluh tentang sebab Node.js. tidak menyokongnya? Jadi inilah ayat yang perlu anda ingatkan kepada diri sendiri - [Tidak ada jalan di gunung buku, dan ketekunan adalah jalan, dan tidak ada batasan untuk lautan pembelajaran, dan perahu ialah bot].
Rumah hujung hadapan web tutorial js Analisis ringkas tentang cara menggunakan sintaks import dalam nod

Analisis ringkas tentang cara menggunakan sintaks import dalam nod

Mar 21, 2023 pm 06:53 PM
nodejs​ node import

Node.js menyokong sintaks import Ia adalah titik pengetahuan yang mudah, tetapi ia boleh mengingatkan kita untuk keluar daripada salah faham pengetahuan, memberi lebih perhatian kepada dunia luar pengetahuan dan sentiasa membuka sempadan pengetahuan kita sendiri.

Analisis ringkas tentang cara menggunakan sintaks import dalam nod

pemodulasi js

Spesifikasi modular arus perdana hadapan, pada masa ini terdapat yang berikut:

  • CommonJS, spesifikasi yang dicadangkan oleh Node.js
  • Modul ECMAScript, ESM, spesifikasi standard JavaScript yang dicadangkan oleh organisasi ECMAScript
  • Spesifikasi yang telah dihapuskan termasuk: CMD, AMD, dsb. , dan kemudian kompleks UMD ( Menyokong koleksi pelbagai spesifikasi)

Oleh itu, terdapat dua spesifikasi arus perdana, CommonJS dan ESM, tetapi kerana Node.js tidak menyokong ESM spesifikasi, banyak kali Terdapat dua kod standard wujud bersama dalam projek kami, jadi situasi berikut berlaku:

// 在node端执行构建的时候
const _ = require('loadsh')

// 在浏览器端实现的时候
import _ from 'loadsh';
Salin selepas log masuk

Dengan cara ini, titik kesakitan mudah berlaku dalam pembangunan Selalunya penyelesaian kami adalah untuk menyelesaikannya melalui pelbagai alatan pembinaan Contohnya: webpack vite, terutamanya apabila kita menulis skrip kompilasi node.js dalam projek, kita sering perlu menukar. [Tutorial berkaitan yang disyorkan: tutorial video nodejs, Pengajaran pengaturcaraan]

Tetapi selepas versi Node.js V14+, ia mula menyokong spesifikasi ESM, anda boleh terus Sintaks seperti import export digunakan dalam Node.js akhirnya saya menunggu hari ini?

PS: Sebenarnya, ciri ini telah ditambah seawal Node.js V8.5, tetapi ia sentiasa diperlukan untuk mendayakan ciri ini melalui pembolehubah global –experimental-modules Disebabkan ketidakstabilan, kebanyakan projek tidak menghidupkannya, tetapi sejak 16+, kami boleh menggunakannya dengan berani dalam projek, tetapi beberapa projek purba mengesyorkan untuk tidak menghidupkannya buat masa ini.

Cara menggunakan

Mari kita baca arahan yang berkaitan daripada laman web rasmi:

Node.js mempunyai dua spesifikasi modul: CommonJSSpesifikasi Modul dan ECMAScriptSpesifikasi Modul Pembangun boleh memberitahu Node.js untuk menggunakan spesifikasi .mjs untuk melaksanakan kod dengan menetapkan bendera package.json atau type=module dalam sambungan fail node xxx.js --input-type. Tanpa tetapan ini, Node.js akan menggunakan ECMAScript untuk pelaksanaan. CommonJSModul Node.js: Modul ECMAScript

Melalui perkara di atas kita boleh mengetahui beberapa kaedah penggunaan:

  • Tukar akhiran fail kepada

    , apabila node.js dimuatkan, ia akan menggunakan spesifikasi .mjs secara automatik ESM

  • untuk menambah item konfigurasi baharu

    dalam projek, kemudian .js dalam keseluruhan projek Fail akan dilaksanakan mengikut package.json spesifikasi "type":"module"ESM

  • Meningkatkan parameter pelaksanaan
  • juga boleh mencapai kesan yang sama

    --input-type

Pelbagai kaedah penggunaan 1. Kaedah konvensional:

2 >3. Sokongan
import _ from 'lodash';

import { readFile } from 'fs';

import Demo from './Demo.mjs'; // 绝对路径或相对路径都可以

export readFile;
export default readFile;
Salin selepas log masuk
Formatkan borang URL

// 由于参数不同, 这个会让`foo.mjs`被加载两次,而不会利用缓存中的`foo.mjs`
import './foo.mjs?query=1'; // loads ./foo.mjs with query of "?query=1"
import './foo.mjs?query=2'; // loads ./foo.mjs with query of "?query=2"
Salin selepas log masuk
4. Paksa fail dimuatkan ke dalam format tertentu, seperti:

data:

, dsb.
import 'data:text/javascript,console.log("hello!");'; // text/javascript 会将后面的内容当成js模块
import { test } from 'data:text/javascript,function test(){console.log("test")};export {test};'; // 这里我们是不是扩宽思路,直接加载在线js呢?

import _ from 'data:application/json,"world!"' assert { type: 'json' }; // application/json 则是json

// application/wasm for Wasm
Salin selepas log masuk

json 5. Muatkan modul spesifikasi commonjs javascriptwebassembly Sudah tentu , ia juga menyokong pemuatan modul spesifikasi commonjs, penggunaannya adalah seperti berikut:

import fooData from './foo.json' assert { type: 'json' };
Salin selepas log masuk

6 import() import asynchronous Penggunaan ini sangat biasa. Ia tidak perlu dimuatkan dalam masa nyata Ia akan dimuatkan apabila diperlukan

7. Menyokong import daripada http/https (ciri eksperimen)
import { default as cjs } from 'cjs'; // module.exports 导出
import cjsSugar from 'cjs'; // module.exports
import * as m from 'cjs';
Salin selepas log masuk
<🎜. > kini merupakan ciri percubaan , terdapat sekatan, seperti:

const { default: barData } =
  await import(&#39;./bar.json&#39;, { assert: { type: &#39;json&#39; } });
Salin selepas log masuk
Tidak menyokong protokol http2/3

Protokol http hanya boleh digunakan untuk alamat IP tempatan seperti 127.0. 0.1

Kuki, Keizinan, dsb. Maklumat tidak akan dibawa dan dihantar
  • Hanya fail js yang dilaksanakan pada hujung jauh akan dimuatkan dan fail lain yang bergantung pada hujung jauh akan tidak dimuatkan
  • Penghadan
import worker_threads from &#39;node:worker_threads&#39;;
import { configure, resize } from &#39;https://example.com/imagelib.mjs&#39;;
configure({ worker_threads });
Salin selepas log masuk

Satu-satunya sekatan: apabila spesifikasi ESM dihidupkan, anda hanya dibenarkan untuk mengisi atau , tidak dibenarkan menggunakan atau , dan ralat akan dilaporkan:

importexportRingkasanrequiremodule.exports

Malah, ini bukan pengetahuan yang popular Selagi anda memberi sedikit perhatian kepada Node.js, anda pada dasarnya boleh memahami ciri ini.
const a  = require(&#39;a&#39;)
           ^
ReferenceError: require is not defined in ES module scope, you can use import instead
    at file:///Users/borfyqiu/Desktop/study/github/qiubohong.github.io/code/demo-rollup/test.mjs:4:12
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:530:24)
    at async loadESM (node:internal/process/esm_loader:91:5)
    at async handleMainPromise (node:internal/modules/run_main:65:12)
Salin selepas log masuk

Tetapi sebagai seseorang yang tidak memberi perhatian, mudah untuk jatuh ke dalam salah faham pengetahuan anda sendiri, Anda akan sentiasa berfikir bahawa Node.js tidak menyokong spesifikasi ESM, malah mengeluh tentang sebab Node.js. tidak menyokongnya? Jadi inilah ayat yang perlu anda ingatkan kepada diri sendiri - [Tidak ada jalan di gunung buku, dan ketekunan adalah jalan, dan tidak ada batasan untuk lautan pembelajaran, dan perahu ialah bot].

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati:

tutorial nodejs

!

Atas ialah kandungan terperinci Analisis ringkas tentang cara menggunakan sintaks import dalam nod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memadam nod dalam nvm Bagaimana untuk memadam nod dalam nvm Dec 29, 2022 am 10:07 AM

Cara memadam nod dengan nvm: 1. Muat turun "nvm-setup.zip" dan pasangkannya pada pemacu C 2. Konfigurasikan pembolehubah persekitaran dan semak nombor versi melalui arahan "nvm -v" 3. Gunakan "nvm arahan install" Pasang nod; 4. Padamkan nod yang dipasang melalui arahan "nvm uninstall".

Cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod Cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod Mar 28, 2023 pm 07:28 PM

Bagaimana untuk mengendalikan muat naik fail? Artikel berikut akan memperkenalkan kepada anda cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod saya harap ia akan membantu anda!

Analisis mendalam tentang alat pengurusan proses Node 'pm2' Analisis mendalam tentang alat pengurusan proses Node 'pm2' Apr 03, 2023 pm 06:02 PM

Artikel ini akan berkongsi dengan anda alat pengurusan proses Node "pm2", dan bercakap tentang mengapa pm2 diperlukan, cara memasang dan menggunakan pm2, saya harap ia akan membantu semua orang!

PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? Mar 05, 2025 pm 05:57 PM

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Bagaimanakah import Python berfungsi? Bagaimanakah import Python berfungsi? May 15, 2023 pm 08:13 PM

Hello, nama saya somenzz, awak boleh panggil saya Abang Zheng. Import Python adalah sangat intuitif, tetapi walaupun begitu, kadangkala anda akan mendapati bahawa walaupun pakej itu ada, kami masih akan menemui ModuleNotFoundError Laluan relatif jelas sangat betul, tetapi ralat ImportError:attemptedrelativeimportwithnoknownparentpackage mengimport modul dalam direktori yang sama dan. yang berbeza. Modul direktori adalah berbeza sama sekali. Artikel ini membantu anda mengendalikan import dengan mudah dengan menganalisis beberapa masalah yang sering dihadapi apabila menggunakan import, anda boleh membuat atribut dengan mudah.

Mari kita bincangkan tentang cara menggunakan pkg untuk membungkus projek Node.js ke dalam fail boleh laku. Mari kita bincangkan tentang cara menggunakan pkg untuk membungkus projek Node.js ke dalam fail boleh laku. Dec 02, 2022 pm 09:06 PM

Bagaimana untuk membungkus fail boleh laku nodejs dengan pkg? Artikel berikut akan memperkenalkan kepada anda cara menggunakan pkg untuk membungkus projek Node ke dalam fail boleh laku. Saya harap ia akan membantu anda!

Apa yang perlu dilakukan jika npm nod gyp gagal Apa yang perlu dilakukan jika npm nod gyp gagal Dec 29, 2022 pm 02:42 PM

npm node gyp gagal kerana versi "node-gyp.js" dan "Node.js" tidak sepadan Penyelesaiannya: 1. Kosongkan cache nod melalui "npm cache clean -f" 2. Melalui "npm install -. g n" Pasang modul n; 3. Pasang versi "nod v12.21.0" melalui arahan "n v12.21.0".

Apakah sistem log masuk tunggal? Bagaimana untuk melaksanakannya menggunakan nodejs? Apakah sistem log masuk tunggal? Bagaimana untuk melaksanakannya menggunakan nodejs? Feb 24, 2023 pm 07:33 PM

Apakah sistem log masuk tunggal? Bagaimana untuk melaksanakannya menggunakan nodejs? Artikel berikut akan memperkenalkan kepada anda cara menggunakan nod untuk melaksanakan sistem log masuk tunggal. Saya harap ia akan membantu anda!

See all articles