在 ESM 中使用 URL 指定命名空间
作者: sebamarynissen创建于 2023年10月19日更新于 2025年10月14日
标签featurechange-minor
在 Node 中使用原生 esm 时,无法使用以下模式:
const debug = require('debug')('namespace');而我们必须使用以下代码:
import createDebug from 'debug';
const debug = createDebug('namespace');在我的一个项目中,我发现自己采用了另一种方法,其中我做了类似以下的事情:
import createDebug from 'debug';
const url = new URL(import.meta.url);
const [[namespace]] = url.searchParams;
export default createDebug(namespace);这样就可以执行以下类似的操作:
// 在服务器中
import debug from './debug.js?server';
// 在工作程序中
import debug from './debug.js?worker';我很好奇,是否在库中添加此功能会有所帮助。我很乐意清理一下代码,并为此提交一个 PR。另一种方法是,如果不希望在库中添加此功能,则可以在 debug 模块的基础上创建自己的 npm 模块。
内容来源: debug-js/debug