es模組能在node中執行嗎
es模組能在node中執行;node從8.5.2版本開始就支援原生es模組,可以透過命令列選項開啟功能,es模組也即ECMAScript模組,是一種JavaScript程式碼重複使用機制,但是不能在es模組中使用require()。
本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。
es模組能在node中執行
從版本 8.5.0 開始,Node.js 開始支援原生 ES 模組,可以透過命令列選項開啟功能。新功能很大程度得歸功於 Bradley Farias。
1.示範
這個範例的程式碼目錄結構如下:
esm-demo/ lib.mjs main.mjs
lib.mjs:
export function add(x, y) { return x + y; }
main.mjs:
import {add} from './lib.mjs'; console.log('Result: '+add(2, 3));
執行示範:
$ node --experimental-modules main.mjs Result: 5
2.清單:需要注意的事情
ES 模組:
·不能動態匯入模組。但是 動態import() 的相關工作正在進行中,應該很快就能提供支援。
·沒有元變量,如 __dirname 和 __filename。但是,有一個的類似功能的提案:「import.meta」。看起來可能是這樣:
console.log(import.meta.url);
·現在所有模組標識符都是URL(這部分在Node.js 是新增的) :
·檔案- 帶有檔案副檔名的相對路徑: ../util/tools.mjs
·庫- 沒有檔案副檔名,也沒有路徑lodash
# ·如何更好地使npm 庫在瀏覽器中也可用(不使用bundler)仍有待觀察。一種可能性是引入 RequireJS 風格的配置數據,將路徑映射到實際路徑。目前,在瀏覽器中使用 bare path 的模組標識符是非法的。
與 CJS 模組的互通性
你可以匯入 CJS 模組,但它們總是只有預設的匯出 - 即 module.exports 的值。讓 CJS 模組支援命名導出已經在做了,但可能需要一段時間。如果你能幫忙,可以來做。
import fs1 from 'fs'; console.log(Object.keys(fs1).length); // 86 import * as fs2 from 'fs'; console.log(Object.keys(fs2)); // ['default']
· 不能在 ES 模組中使用 require()。主要原因是:
· 路徑解析工作稍有不同:ESM 不支援 NODE_PATH 和 require.extensions。而且,它的標識符始終是 URL 也會導致一些細微差異。
· ES 模組始終以非同步方式加載,這確保了與 Web 的最大相容性。這種載入風格並不能透過 require() 混合使用同步載入 CJS 模組。
· 禁止同步模組載入也可以為 Top-level await 導入 ES 模組保留後路(一個目前正在考慮的功能)。
推薦學習:《nodejs影片教學》
以上是es模組能在node中執行嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

nvm刪除node的方法:1、下載「nvm-setup.zip」並將其安裝在C碟;2、設定環境變量,並透過「nvm -v」指令查看版本號;3、使用「nvm install」指令安裝node;4、透過「nvm uninstall」指令刪除已安裝的node即可。

怎麼處理文件上傳?以下這篇文章為大家介紹一下node專案中如何使用express來處理文件的上傳,希望對大家有幫助!

這段時間在開發一個騰訊文檔全品類通用的HTML 動態服務,為了方便各品類接入的生成與部署,也順應上雲的趨勢,考慮使用Docker 的方式來固定服務內容,統一進行製品版本的管理。這篇文章就將我在服務 Docker 化的過程中累積起來的優化經驗分享出來,供大家參考。

這篇文章跟大家分享Node的進程管理工具“pm2”,聊聊為什麼需要pm2、安裝和使用pm2的方法,希望對大家有幫助!

PiNetwork節點詳解及安裝指南本文將詳細介紹PiNetwork生態系統中的關鍵角色——Pi節點,並提供安裝和配置的完整步驟。 Pi節點在PiNetwork區塊鏈測試網推出後,成為眾多先鋒積極參與測試的重要環節,為即將到來的主網發布做準備。如果您還不了解PiNetwork,請參考Pi幣是什麼?上市價格多少? Pi用途、挖礦及安全性分析。什麼是PiNetwork? PiNetwork項目始於2019年,擁有其專屬加密貨幣Pi幣。該項目旨在創建一個人人可參與

如何用pkg打包nodejs可執行檔?以下這篇文章跟大家介紹一下使用pkg將Node專案打包為執行檔的方法,希望對大家有幫助!

npm node gyp失敗是因為“node-gyp.js”跟“Node.js”版本不匹配,其解決辦法:1、透過“npm cache clean -f”清除node快取;2、透過“npm install -g n”安裝n模組;3、透過「n v12.21.0」指令安裝「node v12.21.0」版本即可。

身份驗證是任何網路應用程式中最重要的部分之一。本教程討論基於令牌的身份驗證系統以及它們與傳統登入系統的差異。在本教程結束時,您將看到一個用Angular和Node.js編寫的完整工作演示。傳統身份驗證系統在繼續基於令牌的身份驗證系統之前,讓我們先來看看傳統的身份驗證系統。使用者在登入表單中提供使用者名稱和密碼,然後點擊登入。發出請求後,透過查詢資料庫在後端驗證使用者。如果請求有效,則使用從資料庫中獲取的使用者資訊建立會話,然後在回應頭中傳回會話訊息,以便將會話ID儲存在瀏覽器中。提供用於存取應用程式中受
