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

Javascript 允许在单个typescript npm包中独立导出客户端、服务器和公共模块,javascript,typescript,npm,Javascript,Typescript,Npm,我有一个项目(我们称之为FlatEarth),只包含客户端、服务器和公共组件。我想创建一个npm包,只允许从相关部分导入 例如,仅客户端项目将能够执行以下操作: 从“FlateEarth”导入{FeCommon,FeClient}。 我面临的问题是,尽管我只导入了FeClient和FeCommon组件,但FeServer组件(请求承诺)将在构建过程中导致错误(因为它们与客户端解决方案不兼容),因为它们仍然由FlateEarth的index.ts文件导入 FlatEarth设置基本上是: 索引 F

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

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

从“FlateEarth”导入{FeCommon,FeClient}。

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

FlatEarth设置基本上是:

索引

FeCommon.ts

FeServer.ts

生育权


如果您将TS编译为ES6,并且消费代码使用rollup之类的树震动绑定器,这是可能的。谢谢@unional。我尝试过(使用网页包)但没有成功。我最终只是遵循了这个解决方案(尽管这并不是我想要的)
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 };
import * as stringStatic from './String';
import * as uriStatic from './Uri';

export { stringStatic as string };
export { uriStatic as uri };
import { ServerRequestHandler } from './Server/ServerRequestHandler'; // Depends on request-promise. 

export { ServerRequestHandler as RequestHandler }
import { ClientRequestHandler } from './Client/ClientRequestHandler'; // Depends on jquery

export { ClientRequestHandler as RequestHandler }