两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
public:it:nodejs [2021/05/12 09:56] – oakfire | public:it:nodejs [2025/08/11 11:07] (当前版本) – [2025 改进] oakfire |
---|
<WRAP center tip 60%> | <WRAP center tip 60%> |
News: | News: |
* [[https://nodejs.org/en/blog/release/v10.0.0/|node 10.0]] | |
* [[https://nodejs.org/en/blog/release/v8.0.0/|node 8.0]] | * [[https://nodejs.org/en/blog/release|NodeJS releases note]] |
* [[https://nodejs.org/en/blog/release/v6.0.0/|node 6.0]] | |
* [[https://cnodejs.org/topic/55efcc524b70f72113ff4f3b|nodejs 4.0]] | |
* [[http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/|node-v0-12-0-stable]] | * [[http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/|node-v0-12-0-stable]] |
* [[https://github.com/joyent/node/wiki/API-changes-between-v0.10-and-v0.12|API-changes-between-v0.10-and-v0.12]] | * [[https://github.com/joyent/node/wiki/API-changes-between-v0.10-and-v0.12|API-changes-between-v0.10-and-v0.12]] |
* Nodejs v4.0.0 之后的版本需要 gcc 4.7版本以上来进行 addon 编译. GCC 4.7 or newer is required due to V8 using the template alias feature in C++. | * Nodejs v4.0.0 之后的版本需要 gcc 4.7版本以上来进行 addon 编译. GCC 4.7 or newer is required due to V8 using the template alias feature in C++. |
</WRAP> | </WRAP> |
| ===== 截止 2025 年的改进 ===== |
| * 截止2025年,NodeJS 的改进: |
| * 模块:ESM 代替 CommonJS 方式,增加 "node:" 的前缀:<code> import { readFile } from 'node:fs/promises'; // require -> import</code> |
| * 动态加载模块 ''await import'' |
| * 高级异步:''Promise/async/await'' |
| * 异步迭代器:''AsyncIterators'' |
| * 内置Web API:减少外部依赖,内置''fetch'' 取代第三方 ''axios'' |
| * 优雅的取消操作:''AbortController'' |
| * 内置的测试运行器: ''node:test'' 替代第三方 ''mocha''等。 |
| * 流:''node:stream'' |
| * 工作线程:''node:worker_threads'' |
| * 开发工具完善:''--watch'' 替代第三方 ''nodemon'', ''--env-file'' 替代第三方 ''dotenv'',内置性能监控 ''node:perf_hooks'', 诊断''node:diagnostics_channel'', 权限限制等 |
| |
| |
===== 1. V8 GC ===== | ===== 1. V8 GC ===== |
* {{:public:it:speakerdeck-_memory_management_masterclass_devtools_2_.pdf|memory_management.pdf}} | * {{:public:it:speakerdeck-_memory_management_masterclass_devtools_2_.pdf|memory_management.pdf}} |
* [[http://huang-jerryc.com/2016/04/14/NodeJS%E4%B8%AD%E8%A2%AB%E5%BF%BD%E7%95%A5%E7%9A%84%E5%86%85%E5%AD%98/|NodeJS 内存]] | * [[http://huang-jerryc.com/2016/04/14/NodeJS%E4%B8%AD%E8%A2%AB%E5%BF%BD%E7%95%A5%E7%9A%84%E5%86%85%E5%AD%98/|NodeJS 内存]] |
| * [[https://blog.appsignal.com/2022/09/28/minimize-heap-allocations-in-nodejs.html|Minimize heap allocations in nodejs]] |
| |
| |
* [[https://docs.npmjs.com/files/package.json|package.json]] | * [[https://docs.npmjs.com/files/package.json|package.json]] |
* npm 使用国内淘宝源<code bash> | * npm 使用国内淘宝源<code bash> |
npm config set registry https://registry.npm.taobao.org | npm config set registry https://registry.npmmirror.com |
# 配置后可通过下面方式来验证是否成功 | # 配置后可通过下面方式来验证是否成功 |
npm config get registry | npm config get registry |
</code> | </code> |
* [[https://yarnpkg.com/zh-Hans/|yarn]]: 更快更安全 | * [[https://yarnpkg.com/zh-Hans/|yarn]]: 更快更安全 |
| * [[https://pnpm.io/motivation|pnpm]]: 可节省硬盘空间 |
==== ›› pm2 ==== | ==== ›› pm2 ==== |
* [[https://github.com/Unitech/pm2|pm2]] nodejs进程管理工具, 可 | * [[https://github.com/Unitech/pm2|pm2]] nodejs进程管理工具, 可 |