相关疑难解决方法(0)

新的 package.json `exports` 字段不适用于 TypeScript

Node.js 13.2 版允许 ESM 模块和一个package.json名为的新字段exports来选择和重写导出的文件。

在 13.2 之前,我从dist我的库文件夹中导入文件:

import myfile from 'mylibrary/dist/myfile'
Run Code Online (Sandbox Code Playgroud)

在 13.2 中,我将此添加到我的package.json:

exports: {
    "./": "./dist/"
}
Run Code Online (Sandbox Code Playgroud)

并尝试导入文件:

import myfile from 'mylibrary/myfile'
Run Code Online (Sandbox Code Playgroud)

但是 Typescript 引发了 2307 错误,说未找到该模块。

node.js typescript

22
推荐指数
4
解决办法
6928
查看次数

如何导出 Typescript 库中的子模块

所以我的目标是在 Typescript 中创建一个库。我的目的是将库的核心部分拆分为子模块,如 RxJS 或 Angular Material。

RxJS 和 Angular 都支持这样的导入:

// RxJS
import { map, filter } from 'rxjs/operators';

// Angular
import { MatButtonModule } from '@angular/material/button';
Run Code Online (Sandbox Code Playgroud)

但是,我自己无法复制这一点。

我的目标是做类似的事情,并允许您导入一个类 import { foo } from 'package/bar;

我在 Github 上查看了 RxJS 的源代码,并尝试复制他们所做的工作,但它不起作用。

该库编译得很好,但是当我开始导入它时,我总是遇到Cannot resolve dependency 'package/foo'错误。同时做import { test } from package(没有子模块部分)完全正常。

我试过在 tsconfig 中使用路径无济于事。如果那是答案,那么我做错了。

我该怎么做?

javascript typescript ecmascript-6

7
推荐指数
1
解决办法
1770
查看次数

标签 统计

typescript ×2

ecmascript-6 ×1

javascript ×1

node.js ×1