cli: suppress Node.js SQLite ExperimentalWarning #179

Closed
opened 2026-04-27 08:11:13 +00:00 by xiaomo · 0 comments
Owner

问题

CLI 每次运行都会打印 Node.js 的 SQLite experimental warning:

(node:26703) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)

这是 node:sqlite 模块的标准警告,但对用户来说是视觉噪音,没有实际价值。

方案

在 CLI 入口(或 daemon/worker 启动时)通过 process.removeAllListeners(warning)--no-warnings flag 过滤掉 ExperimentalWarning 类型的警告。

推荐做法:在入口处加一个 warning filter,只屏蔽 ExperimentalWarning,保留其他警告:

const originalEmit = process.emit;
process.emit = function (event, ...args) {
  if (event === warning && args[0]?.name === ExperimentalWarning) return false;
  return originalEmit.apply(this, [event, ...args]);
};

或者在 spawn worker 时加 NODE_OPTIONS=--no-warnings

## 问题 CLI 每次运行都会打印 Node.js 的 SQLite experimental warning: ``` (node:26703) ExperimentalWarning: SQLite is an experimental feature and might change at any time (Use node --trace-warnings ... to show where the warning was created) ``` 这是 `node:sqlite` 模块的标准警告,但对用户来说是视觉噪音,没有实际价值。 ## 方案 在 CLI 入口(或 daemon/worker 启动时)通过 `process.removeAllListeners(warning)` 或 `--no-warnings` flag 过滤掉 `ExperimentalWarning` 类型的警告。 推荐做法:在入口处加一个 warning filter,只屏蔽 `ExperimentalWarning`,保留其他警告: ```ts const originalEmit = process.emit; process.emit = function (event, ...args) { if (event === warning && args[0]?.name === ExperimentalWarning) return false; return originalEmit.apply(this, [event, ...args]); }; ``` 或者在 spawn worker 时加 `NODE_OPTIONS=--no-warnings`。
This repo is archived. You cannot comment on issues.
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#179