亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    淺談Node.js中ES6導(dǎo)入語法的使用方法

    Node.js中如何使用ES6導(dǎo)入語法?本篇文章就來給大家介紹一下Node.js中ES6導(dǎo)入語法的使用方法。

    淺談Node.js中ES6導(dǎo)入語法的使用方法

    模塊是導(dǎo)出一個(gè)或多個(gè)值的 JavaScript 文件。導(dǎo)出的值可以是變量、對象或函數(shù)。

    Node.js 應(yīng)用由模塊組成,其模塊系統(tǒng)采用 CommonJS 規(guī)范,它并不是 JavaScript 語言規(guī)范的正式組成部分?!就扑]學(xué)習(xí):《nodejs 教程》】

    在 CommonJS 中,有一個(gè)全局性方法 require(),用于加載模塊。

    // 加載 path 模塊 const path = require('path')

    而 ECMAScript 模塊(簡稱 ES 模塊或 ESM)是 JavaScript 語言規(guī)范中添加的一個(gè)模塊,正在尋求統(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 startnpm run dev 運(yùn)行 Node.js,您將遇到以下錯(cuò)誤:

    淺談Node.js中ES6導(dǎo)入語法的使用方法

    由于我們使用了 ES 模塊語法導(dǎo)入 path 模塊而導(dǎo)致程序崩潰。

    而目前最快速的解決方法是,我們可以使用 Node.js 推薦的方法,在 package.json 文件中設(shè)置 "type": "module"。

    {   "type": "module" }

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

    淺談Node.js中ES6導(dǎo)入語法的使用方法

    低于 Node v.14 版本的環(huán)境

    另一個(gè)解決這個(gè)問題的方法是使用 Babel。它是一個(gè) JavaScript 編譯器,允許您使用最新語法編寫 JS。它可以在任何用 JavaScript 編寫的項(xiàng)目中使用,因此也可以在 Node.js 項(xiàng)目中使用

    首先從終端窗口安裝以下開發(fā)人員依賴項(xiàng):

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

    然后在 Node.js 項(xiàng)目的根目錄下創(chuàng)建一個(gè)名為 babel.config.json 的文件,并添加以下內(nèi)容:

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

    @babel/node 包是一個(gè) CLI 實(shí)用程序,它在運(yùn)行 Node.js 項(xiàng)目之前用 Babel 預(yù)設(shè)和插件編譯 JS 代碼。這意味著它將在執(zhí)行 Node 項(xiàng)目之前讀取并應(yīng)用 babel.config.json 中提到的任何配置。

    使用 babel-node 替換該 node,以在 startdev 腳本中執(zhí)行服務(wù)器。

    使用 npm run dev 腳本運(yùn)行 Node 服務(wù)器的示例:

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

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號