淺談Node.js中ES6匯入語法的使用方法

zybing發表於2021-09-11
中如何使用ES6匯入語法?本篇文章就來給大家介紹一下Node.js中ES6匯入語法的使用方法。

淺談Node.js中ES6匯入語法的使用方法

模組是匯出一個或多個值的 JavaScript 檔案。匯出的值可以是變數、物件或函式。

Node.js 應用由模組組成,其採用 CommonJS 規範,它並不是 JavaScript 語言規範的正式組成部分。【推薦學習:《》】

在 CommonJS 中,有一個全域性性方法 require(),用於載入模組。

// 載入 path 模組
const path = require('path')

而 ECMAScript 模組(簡稱 ES 模組或 ESM)是 JavaScript 語言規範中新增的一個模組,正在尋求統一和標準化模組在 JavaScript 應用程式中的載入方式。

以下匯入語法由以下 ES 模組標準組成,用於匯入從不同 JavaScript 檔案匯出的模組:

import XXX from 'xxx'

Node.js 不支援直接匯入 ES6。嘗試在 JS 檔案中編寫 import 語法:

// index.js
import { sep } from 'path'

console.log('print: ', sep)

使用 npm startnpm run dev 執行 Node.js,您將遇到以下錯誤:

1.png

由於我們使用了 ES 模組語法匯入 path 模組而導致程式崩潰。

而目前最快速的解決方法是,我們可以使用 ,在 package.json 檔案中設定 "type": "module"

{
  "type": "module"
}

此解決方案適用於最新的 Node.js 版本 14.x.x 以上的版本(撰寫本文時為 15.6.0)。

2.png

低於 Node v.14 版本的環境

另一個解決這個問題的方法是使用 。它是一個 JavaScript 編譯器,允許您使用最新語法編寫 JS。它可以在任何用 JavaScript 編寫的專案中使用,因此也可以在 Node.js 專案中使用

首先從終端視窗安裝以下開發人員依賴項:

$ npm i -D @babel/core @babel/preset-env @babel/node

然後在 Node.js 專案的根目錄下建立一個名為 babel.config.json 的檔案,並新增以下內容:

module.exports = {
  "presets": ["@babel/preset-env"]
}

@babel/node 包是一個 CLI 實用程式,它在執行 Node.js 專案之前用 Babel 預設和外掛編譯 JS 程式碼。這意味著它將在執行 Node 專案之前讀取並應用 babel.config.json 中提到的任何配置。

使用 babel-node 替換該 node,以在 startdev 指令碼中執行伺服器。

使用 npm run dev 指令碼執行 Node 伺服器的示例:

{
  "scripts": {
    "dev": "nodemon --exec babel-node server.js"
  }
}

更多程式設計相關知識,請訪問:!!

以上就是淺談Node.js中ES6匯入語法的使用方法的詳細內容,更多請關注php中文網其它相關文章!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2827559/,如需轉載,請註明出處,否則將追究法律責任。

相關文章