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 }