# @dual-bundle/import-meta-resolve 中文文档

规范地址：https://npmcn.com/package/%40dual-bundle/import-meta-resolve/

版本：4\.2\.1
npm 元数据更新时间：2025-09-01T04:56:03.622Z
中文译文更新时间：2026-11-12T23:25:25.430Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dual-bundle/import-meta-resolve
原文对照：https://npmcn.com/package/%40dual-bundle/import-meta-resolve/?lang=original
项目主页：https://github.com/un-es/import-meta-resolve#readme
源码仓库：https://github.com/un-es/import-meta-resolve

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：127 kB，22 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2024-02-28T13:59:17.069Z
- 最新版本发布：2025-09-01T04:56:03.192Z
- 近 30 天下载量：36239444（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @dual-bundle/import-meta-resolve
```

也可以使用：`pnpm add @dual-bundle/import-meta-resolve`、`yarn add @dual-bundle/import-meta-resolve`、`bun add @dual-bundle/import-meta-resolve`

## README

# `@dual-bundle/import-meta-resolve`

一个叉子 [`import-meta-resolve`](https://github.com/wooorm/import-meta-resolve) 同时提供共同js +无害环境管理支持,AKA双包.

它会重新定位并试图释放出来,以便每天与上游同步, 见 [.github/工作流量/再基.yml](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/.github/workflows/rebase.yml) 详细情况.

## 安装

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

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

* * *

# 导入元解析

[![Build](https://github.com/wooorm/import-meta-resolve/workflows/main/badge.svg)](https://github.com/wooorm/import-meta-resolve/actions) [![Coverage](https://img.shields.io/codecov/c/github/wooorm/import-meta-resolve.svg)](https://codecov.io/github/wooorm/import-meta-resolve) [![Downloads](https://img.shields.io/npm/dm/import-meta-resolve.svg)](https://www.npmjs.com/package/import-meta-resolve)

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

## 目录

-   [这是什么?](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-what-is-this)
-   [什么时候用这个?](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-when-to-use-this)
-   [安装](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-install)
-   [使用](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-use)
-   [API 密码](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-api)
    -   [`resolve(specifier, parent)`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-resolvespecifier-parent)
    -   [`moduleResolve(specifier, parent, conditions, preserveSymlinks)`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-moduleresolvespecifier-parent-conditions-preservesymlinks)
    -   [`ErrnoException`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-errnoexception)
-   [算法](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-algorithm)
-   [与节点的差异](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-differences-to-node)
-   [类型](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-types)
-   [兼容性](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-compatibility)
-   [贡献](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-contribute)
-   [许可证](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-license)

## 这是什么?

这个包是用来填马的 [`import.meta.resolve`](https://nodejs.org/api/esm.html#esm_import_meta_resolve_specifier_parent)。 。 。 . 它支持所有你需要解决的文件,就像现代节点所做的: 导入地图,导出地图,装入CJS和无害环境管理项目,所有这一切!

## 什么时候用这个?

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

## 安装

这个软件包是 [仅限无害环境管理](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)。 。 。 . 在Node.js(第16版+)中,安装为 [无](https://docs.npmjs.com/cli/install)数字 :

```sh
npm install import-meta-resolve
```

## 使用

```js
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`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-moduleResolvespecifier-parent-conditions-preserveSymlinks) 财务报告和审定财务报表 [`resolve`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-resolvespecifier-parent)。 。 。 . 没有默认导出 .

### `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`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-errnoexception)。 。 。 .

### `moduleResolve(specifier, parent, conditions, preserveSymlinks)`

这个 [“溶解算法规格”](https://nodejs.org/dist/latest-v14.x/docs/api/esm.html#esm_resolver_algorithm) 如节点文件所详述 (比 `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`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-errnoexception)。 。 。 .

### `ErrnoException`

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

###### 类型

```ts
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` 与 [解析器算法 规格](https://nodejs.org/dist/latest-v14.x/docs/api/esm.html#esm_resolver_algorithm) 如节点文档所详述(同步和略微) 低于 `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` 可能不会被篡改

## 类型

此软件包已全部输入 [类型脚本](https://www.typescriptlang.org/)。 。 。 . 它输出额外类型 [`ErrnoException`](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/#readme-errnoexception)。 。 。 .

## 兼容性

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

## 贡献

是的,请! 见 [如何为开放源码做出贡献](https://opensource.guide/how-to-contribute/)。 。 。 .

## 许可证

[麻省理工学院](https://npmcn.com/package/%40dual-bundle/import-meta-resolve/license) © [Titus 虫类](https://wooorm.com/) 和节点js 贡献者

## 常见问题

### @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 和提交记录判断。

