Node.js 8.5 新特性
最近 Node.js 釋出了8.5版本,在這個版本里,Node 新增了3個激動人心的新特性。
支援 ES Module
此次版本迭代中,Node 終於支援了開發者呼聲最高的 ES 模組提案。這意味著,你可以直接使用import
關鍵字引入需要的模組。 Node 8.5 可以執行如下程式碼:
1 2 |
`import fs from 'fs'` |
使用es模組,你需要注意,引入檔案的副檔名應為 mjs
,同時使用 --experimental-modules
標識。
在 Node.js 中使用 ES 模組的限制:
import()
, V8引擎將在下一版本支援,import.meta
, V8引擎暫不支援,- 不支援
require('./foo.mjs')
參考文章:https://github.com/nodejs/node/pull/14369/files
效能監控
在 Node.js 8.5 版本中,效能監控API 。
在 Node.js 8.5 中,可以呼叫 mark()
和 measure()
API,監控 Node.js 事件執行時間。
在 Node.js 8.5 中,你可以這樣使用:
1 2 3 4 5 6 7 8 9 |
const { performance } = require('perf_hooks') performance.mark('A') setTimeout(() => { performance.mark('B') performance.measure('A to B', 'A', 'B') const entry = performance.getEntriesByName('A to B', 'measure') console.log(entry.duration) }, 10000) |
官方文件:https://nodejs.org/api/perf_hooks.html
參考文章:https://github.com/nodejs/node/pull/14680/files
fs
模組新增檔案複製功能
Node.js 8.5 推出了更高階的檔案系統,在這個版本你可以直接通過 fs
模組複製某個檔案的程式碼:
1 2 3 4 5 6 7 8 9 10 |
const fs = require('fs') fs.copyFile('source.txt', 'destination.txt', (err) => { if (err) { // handle error properly, not just console.log return console.error(err) } console.log('source.txt was copied to destination.txt') }) |
參考文章:https://github.com/nodejs/node/pull/15034/files
希望通過這些新特性,開發者能做出更令人驚喜的 Node.js 應用。