Node.js中如何使用ES6導(dǎo)入語法,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比承德縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式承德縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋承德縣地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
模塊是導(dǎo)出一個或多個值的 JavaScript 文件。導(dǎo)出的值可以是變量、對象或函數(shù)。
Node.js 應(yīng)用由模塊組成,其模塊系統(tǒng)采用 CommonJS 規(guī)范,它并不是 JavaScript 語言規(guī)范的正式組成部分?!就扑]學(xué)習(xí):《nodejs 教程》】
在 CommonJS 中,有一個全局性方法 require()
,用于加載模塊。
// 加載 path 模塊 const path = require('path')
而 ECMAScript 模塊(簡稱 ES 模塊或 ESM)是 JavaScript 語言規(guī)范中添加的一個模塊,正在尋求統(tǒng)一和標(biāo)準(zhǔn)化模塊在 JavaScript 應(yīng)用程序中的加載方式。
以下導(dǎo)入語法由以下 ES 模塊標(biāo)準(zhǔn)組成,用于導(dǎo)入從不同 JavaScript 文件導(dǎo)出的模塊:
import XXX from 'xxx'
Node.js 不支持直接導(dǎo)入 ES6。嘗試在 JS 文件中編寫 import
語法:
// index.js import { sep } from 'path' console.log('print: ', sep)
使用 npm start
或 npm run dev
運行 Node.js,您將遇到以下錯誤:
由于我們使用了 ES 模塊語法導(dǎo)入 path
模塊而導(dǎo)致程序崩潰。
而目前最快速的解決方法是,我們可以使用 Node.js 推薦的方法,在 package.json
文件中設(shè)置 "type": "module"
。
{ "type": "module" }
此解決方案適用于最新的 Node.js 版本 14.x.x
以上的版本(撰寫本文時為 15.6.0
)。
另一個解決這個問題的方法是使用 Babel。它是一個 JavaScript 編譯器,允許您使用最新語法編寫 JS。它可以在任何用 JavaScript 編寫的項目中使用,因此也可以在 Node.js 項目中使用
首先從終端窗口安裝以下開發(fā)人員依賴項:
$ npm i -D @babel/core @babel/preset-env @babel/node
然后在 Node.js 項目的根目錄下創(chuàng)建一個名為 babel.config.json
的文件,并添加以下內(nèi)容:
module.exports = { "presets": ["@babel/preset-env"] }
@babel/node
包是一個 CLI 實用程序,它在運行 Node.js 項目之前用 Babel 預(yù)設(shè)和插件編譯 JS 代碼。這意味著它將在執(zhí)行 Node 項目之前讀取并應(yīng)用 babel.config.json
中提到的任何配置。
使用 babel-node
替換該 node
,以在 start
或 dev
腳本中執(zhí)行服務(wù)器。
使用 npm run dev
腳本運行 Node 服務(wù)器的示例:
{ "scripts": { "dev": "nodemon --exec babel-node server.js" } }
關(guān)于Node.js中如何使用ES6導(dǎo)入語法問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。