允许在单个 typescript npm 包中独立导出客户端、服务器和通用模块

pul*_*ies 5 javascript npm typescript

我有一个项目(我们称之为 FlatEarth),其中包含仅客户端、仅服务器和通用组件。我想创建一个允许仅从相关部分导入的 npm 包。

例如,仅客户端项目将能够执行以下操作:

import { FeCommon, FeClient } from 'FlatEarth'.

我面临的问题是,即使我只导入 FeClient 和 FeCommon 组件,FeServer 组件(请求承诺)也会在构建过程中导致错误(因为它们与客户端解决方案不兼容),因为它们仍在构建中。由 FlatEarth 的 index.ts 文件导入。

FlatEarth 的设置本质上是:

索引.ts

import * as FeCommonStatic from './FeCommon';
import * as FeServerStatic from './FeServer';
import * as FeClientStatic from './FeClient';

export { FeCommonStatic as FeCommon };
export { FeServerStatic as FeServer };
export { FeClientStatic as FeClient };
Run Code Online (Sandbox Code Playgroud)

FeCommon.ts

import * as stringStatic from './String';
import * as uriStatic from './Uri';

export { stringStatic as string };
export { uriStatic as uri };
Run Code Online (Sandbox Code Playgroud)

FeServer.ts

import { ServerRequestHandler } from './Server/ServerRequestHandler'; // Depends on request-promise. 

export { ServerRequestHandler as RequestHandler }
Run Code Online (Sandbox Code Playgroud)

FeClient.ts

import { ClientRequestHandler } from './Client/ClientRequestHandler'; // Depends on jquery

export { ClientRequestHandler as RequestHandler }
Run Code Online (Sandbox Code Playgroud)