ES6 是 Node 的必由之路
我们中有多少人仍在 NodeJS 应用程序中使用旧的 ES 语法?
const express = require('express');
const app = express()
app.use(express.static('public'));
app.get('/',function (req,res) {
res.send('ES what?');
})
app.listen(3000, function () {
console.log('App listening on port 3000!')
})
我敢打赌我们大多数人都犯过这种错误,不幸的是,我也犯过同样的错误!我们继续在 Node 中使用这种语法的原因是,大多数模板和示例代码都基于此。但自Node 14.ximport
发布以来,ES 模块已获得官方支持并保持稳定。但人们不应该仅仅因为要迁移就迁移。迁移通常需要权衡利弊。经过一番研究和实验,我得出结论,使用 ES6 实际上有三大优势require
:
import
有助于选择性地加载所需的代码片段import
还有助于节省应用程序加载的内存require()
的加载是同步的,而import
的加载可以是异步的;这为大型应用程序提供了性能优势。
所以自然而然的问题是,在你的节点项目中使用 ES6 语法需要什么?
让我们开始吧!
设置 package.json
需要注意的是,Node.js 不直接支持 ES6 的 import 语句。如果我们尝试import
在 Node.js 中使用 import 关键字来导入模块,无疑会报错。例如,如果我们尝试导入 express 模块,Node.js 会报错如下:
为了使 Node 支持 ES 模块,我们需要调整 package.json 文件。在文件根目录package.json
添加以下内容:"type": "module"
//package.json
{
"name": "index",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"start": "node index.js"
},
"keywords": [],
"author": "",
"license": "ISC"
"dependencies": {
"express": "~4.16.1",
}
}
然后运行以下命令来更新 package.json 的更改
npm i
将应用代码更新为 ES6 语法
更新package
文件后,我们必须对应用程序的代码进行如下相关更改:
import express from 'express';
const app = express();
app.get('/',(req,res) => {
res.send('ES6 is the Node way to go');
})
app.listen(3000,() => {
console.log(`App listening on port 3000!`);
})
运行您的应用程序,它应该可以使用更新的 ES 语法!
我最近更新了我的演示应用程序Random Cat Facts以使用新语法,并建议检查更新 ES6 提交差异以获取此迁移的真实示例。
感谢您的关注,请务必关注我的下一篇文章!
==== 在社交媒体上关注我( @mrinasugosh
) ====
Dev.to: @mrinasugosh
Github: @mrinasugosh
Twitter: @mrinasugosh
LinkedIn: @mrinasugosh