javascript - Tillat eksport av Client-, Server- og Common-moduler uavhengig i en enkelt TypeScript npm-pakke


Jeg har et prosjekt (la oss kalle det FlatEarth) med klient-only, server-only og felles komponenter. Jeg ønsker å lage en enkelt npm-pakke som lar importere bare fra de relevante delene.

For eksempel ville et prosjekt som kun kjører på klientsiden kunne gjøre følgende:

import { FeCommon, FeClient } from 'FlatEarth'.

Problemet jeg står overfor er at selv om jeg bare importerer FeClient- og FeCommon-komponentene, vil FeServer-komponentene (request-promise) forårsake feil i byggeprosessen (siden de ikke er kompatible med klientløsninger) fordi de fortsatt blir importert av FlatEarths index.ts-fil.

FlatEarth-oppsettet er i hovedsak:

index.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 };

FeCommon.ts

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

export { stringStatic as string };
export { uriStatic as uri };

FeServer.ts

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

export { ServerRequestHandler as RequestHandler }

FeClient.ts

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

export { ClientRequestHandler as RequestHandler }

Relaterte artikler