@dual-bundle/import-meta-resolve

中文文档
4.2.1发布于 2025/09/01MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 3623.9万

一个叉子 import-meta-resolve 同时提供共同js +无害环境管理支持,AKA双包.

中文使用文档
文档目录16 节
  1. 安装
  2. 目录
  3. 这是什么?
  4. 什么时候用这个?
  5. 安装
  6. 使用
  7. API 密码
  8. resolve(specifier, parent)
  9. moduleResolve(specifier, parent, conditions, preserveSymlin…
  10. ErrnoException
  11. 算法
  12. 与节点的差异
  13. 类型
  14. 兼容性
  15. 贡献
  16. 许可证

@dual-bundle/import-meta-resolve

一个叉子 import-meta-resolve 同时提供共同js +无害环境管理支持,AKA双包.

它会重新定位并试图释放出来,以便每天与上游同步, 见 .github/工作流量/再基.yml 详细情况.

安装

# npm
npm install @dual-bundle/import-meta-resolve

# yarn
yarn add @dual-bundle/import-meta-resolve

导入元解析

Build Coverage Downloads

解决像Node.js这样的问题.

目录

这是什么?

这个包是用来填马的 import.meta.resolve。 。 。 . 它支持所有你需要解决的文件,就像现代节点所做的: 导入地图,导出地图,装入CJS和无害环境管理项目,所有这一切!

什么时候用这个?

截至20.0号节点, import.meta.resolve 还在实验旗后. 这个包可以用来做它在"节点16–20"中所做的.

安装

这个软件包是 仅限无害环境管理。 。 。 . 在Node.js(第16版+)中,安装为 无数字 :

npm install import-meta-resolve

使用

import {resolve} from 'import-meta-resolve'

// A file:
console.log(resolve('./index.js', import.meta.url))
//=> file:///Users/tilde/Projects/oss/import-meta-resolve/index.js

// A CJS package:
console.log(resolve('builtins', import.meta.url))
//=> file:///Users/tilde/Projects/oss/import-meta-resolve/node_modules/builtins/index.js

// A scoped CJS package:
console.log(resolve('@eslint/eslintrc', import.meta.url))
//=> file:///Users/tilde/Projects/oss/import-meta-resolve/node_modules/@eslint/eslintrc/lib/index.js

// A package with an export map:
console.log(resolve('micromark/lib/parse', import.meta.url))
//=> file:///Users/tilde/Projects/oss/import-meta-resolve/node_modules/micromark/lib/parse.js

// A node builtin:
console.log(resolve('fs', import.meta.url))
//=> node:fs

API 密码

此软件包导出标识符 moduleResolve 财务报告和审定财务报表 resolve。 。 。 . 没有默认导出 .

resolve(specifier, parent)

匹配 import.meta.resolve 不过 parent 需要( 您可以通过) import.meta.url) (中文(简体) ).

参数
  • specifier (单位:千美元)string(中文(简体) ) – 模块指定符,用于解决相对于母体的问题 (单位:千美元)/example.js, (中文(简体) ), ./example.js, (中文(简体) ), ../example.js, (中文(简体) ), some-package, (中文(简体) ), fs页:1
  • parent (单位:千美元)string,例如: import.meta.url(中文(简体) ) —— 要解决的绝对母模块 URL; 您必须通过 import.meta.url 或别的东西
回返

满 file:, (中文(简体) ), data:,或 node: URL (中文(简体) )string对发现的东西

掷出

丢出一个 ErrnoException。 。 。 .

这个 “溶解算法规格” 如节点文件所详述 (比 resolve) (中文(简体) ).

参数
  • specifier (单位:千美元)string(中文(简体) ) —— 说 /example.js, (中文(简体) ), ./example.js, (中文(简体) ), ../example.js, (中文(简体) ), some-package, (中文(简体) ), fs类
  • parent (单位:千美元)URL,例如: import.meta.url(中文(简体) ) —— 完整 URL( 到文件) specifier 解析相对
  • conditions (单位:千美元)Set<string>,默认值 : new Set(['node', 'import'])(中文(简体) ) 条件
  • preserveSymlinks (单位:千美元)boolean,默认值 : false(中文(简体) ) ——保持并联而不是解决
回返

URL 对象 (URL对发现的东西.

掷出

丢出一个 ErrnoException。 。 。 .

ErrnoException

解析时发生的许多不同错误之一(TypeScript类型).

类型
type ErrnoExceptionFields = Error & {
  errnode?: number | undefined
  code?: string | undefined
  path?: string | undefined
  syscall?: string | undefined
  url?: string | undefined
}

这个 code 字段上的错误是以下字符串之一:

  • 'ERR_INVALID_MODULE_SPECIFIER' 何时 specifier 无效( 例如: '#'(中文(简体) )
  • 'ERR_INVALID_PACKAGE_CONFIG' 当 package.json 无效( 例如: 无效的 JSON)
  • 'ERR_INVALID_PACKAGE_TARGET' 当 package.json exports 或者说 imports 无效( 例如: 当 不从 './'(中文(简体) )
  • 'ERR_MODULE_NOT_FOUND' 何时 specifier 无法在 parent (例: 'some-missing-package'(中文(简体) )
  • 'ERR_NETWORK_IMPORT_DISALLOWED' ——在试图解决本地文件或从远程文件内建时抛出 (单位:千美元)node:fs 相对于 'https://example.com'(中文(简体) )
  • 'ERR_PACKAGE_IMPORT_NOT_DEFINED' ——当导入图中没有定义本地导入时(例如: '#local' 未定义时)
  • 'ERR_PACKAGE_PATH_NOT_EXPORTED' 当导出在导出图中未定义时(例如: 'tape/index.js', (中文(简体) ), 在其导出图中未显示)
  • 'ERR_UNSUPPORTED_DIR_IMPORT' —— 当尝试导入目录时( 例如 : './lib/'(中文(简体) )
  • 'ERR_UNKNOWN_FILE_EXTENSION' ——不知何故读取一个带有出乎意料的扩展名的文件('./readme.md'(中文(简体) )
  • 'ERR_INVALID_ARG_VALUE' 何时 conditions 错误

算法

用于 resolve 匹配节点处理方式 import.meta.resolve,与 几相差别相.

用于 moduleResolve 与 解析器算法 规格 如节点文档所详述(同步和略微) 低于 resolve) (中文(简体) ).

与节点的差异

  • parent 默认为 import.meta.url 无法填充: 您必须 明确通过
  • 不支持加载器(这意味着执行所有加载器)
  • 不支持 CLI 旗帜 : --conditions, (中文(简体) ), --experimental-default-type, (中文(简体) ), --experimental-json-modules, (中文(简体) ), --experimental-network-imports, (中文(简体) ), --experimental-policy, (中文(简体) ), --experimental-wasm-modules, (中文(简体) ), --input-type, (中文(简体) ), --no-addons, (中文(简体) ), --preserve-symlinks,则 --preserve-symlinks-main 工作
  • 没有支持 WATCH_REPORT_DEPENDENCIES env 变量
  • 没有试图根据过去的工作方式增加一项建议 CJS 在未找到错误之前
  • 原生方法没有保护:例如,节点保护 String#slice 可能不会被篡改

类型

此软件包已全部输入 类型脚本。 。 。 . 它输出额外类型 ErrnoException。 。 。 .

兼容性

这个软件包至少可以兼容所有已维护的Node.js版本. 从现在起,那是Node.js 16 以及后来.

贡献

是的,请! 见 如何为开放源码做出贡献。 。 。 .

许可证

麻省理工学院 © Titus 虫类 和节点js 贡献者

版本与发布记录

@dual-bundle/import-meta-resolve 共发布 4 个版本,首次发布于 2024/02/28;过去 12 个月发布了 0 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.2.1latest2025/09/011.2 年前
4.2.02025/09/011.2 年前
4.1.02024/05/092 年前
4.0.02024/02/282 年前

关于 @dual-bundle/import-meta-resolve 的常见问题

@dual-bundle/import-meta-resolve 是什么?

一个叉子 import-meta-resolve 同时提供共同js +无害环境管理支持,AKA双包.

如何安装 @dual-bundle/import-meta-resolve?

在项目目录运行 npm install @dual-bundle/import-meta-resolve,或使用 pnpm add / yarn add / bun add。

@dual-bundle/import-meta-resolve 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dual-bundle/import-meta-resolve 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dual-bundle/import-meta-resolve 可以商用吗?

@dual-bundle/import-meta-resolve 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dual-bundle/import-meta-resolve 的下载量有多少?

根据 npm 官方下载统计,@dual-bundle/import-meta-resolve 在 2026/10/13 – 2026/11/11 这 30 天内被下载 36,239,444 次,日均约 1,207,981 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dual-bundle/import-meta-resolve 还在维护吗?

最新版本 4.2.1 发布于 2025/09/01(1.2 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/02/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。