#typescript #javascript #resolve #node #npm #file-path

es_resolve

Rust 中 JavaScript/TypeScript 模块解析

7 个不稳定版本

0.4.3 2023 年 8 月 22 日
0.4.2 2022 年 10 月 17 日
0.3.0 2022 年 10 月 17 日
0.2.0 2022 年 10 月 15 日
0.1.0 2022 年 10 月 14 日

#1965 in 网页编程

27 每月下载量

MIT 许可证

46KB
1K SLoC

Crates.io

ES Resolve

Rust 中 JavaScript/TypeScript 模块解析

安装

cargo add es_resolve

开始使用

use std::path::{Path, PathBuf};
use es_resolve::*;

// Provide an exact path to the file from which we resolve
let source = PathBuf::from("tests/fixtures/relative/js.js");
// Construct an `es_resolve::EsResolver`, then call `resolve` to get the result.
// Also check `es_resolve::EsResolverError` for a list of errors that might occur!
let target = EsResolver::new("./ts", &source, TargetEnv::Browser).resolve().unwrap();
let expected_target_path = Path::new("tests/fixtures/relative/ts.ts").canonicalize().unwrap();
let expected_target = expected_target_path.to_string_lossy();

// We expect to get the absolute path to the resolved target module!
assert_eq!(target, expected_target);

功能

通用功能

功能 状态 注意
相对模块导入 👌 0.1.0 import './App' 当存在 ./App.ts ./App.tsx ./App.js 等。
非相对模块导入 👌 0.1.0 import '@angular/core'。另请参阅 Package.json 支持
TypeScript 路径映射 👌 0.1.0 import '@/App' 当你在父 tsconfig.json 中定义 baseUrlpaths
Node 内置模块 👌 0.1.0 解析 node 内置模块,如 "http",而不是抛出错误。

Package.json 支持

功能 状态 注意
主要字段 👌 0.1.0 默认尝试在 package.json 中的 "main""browser""module" 字段。
子路径导出 👌 0.1.0 { "exports": { "import": "./index.mjs", "require": "./index.cjs" } } 在 package.json 中的使用越来越受欢迎。
子路径导入 👷

依赖项

~1.7–2.7MB
~52K SLoC