javascript - Jag kan inte importera ett av mina node-moduler medan de andra fungerar
Min Typescript-mappstruktur ser ut så här
src
|aws folder
| |__s3-controller.ts
|events-service folder
| |__events-service-request.ts
|__index.ts
Min index.ts har följande exporter definierade:
export * from './aws/s3-controller.js';
export * from './aws/sns-controller.js';
export * from './events-service/events-service-request.js';
filen events-service-request.ts har följande
import axios from 'axios';
/**
*
*/
export default class EventsService {
baseUrl: string;
constructor(baseUrl: string) {
this.baseUrl = baseUrl;
}
/**
*
*/
async sendRequest(body: {}): Promise<void> {
axios.post(
`${this.baseUrl}/twirp/events.domain.Domain/FireDomainEvent`,
body,
);
}
}
min package.json har följande:
"exports": {
".": "./dist/esm/actions/index.js",
"./utils": "./dist/esm/utils/index.js"
},
Jag försöker importera funktionerna från min events-service-request.js till mitt vanliga Node-projekt med import EventsService from 'qa-data-tool/utils'; och jag får hela tiden följande felmeddelande:
import EventsService from 'qa-data-tool/utils';
^^^^^^^^^^^^^
SyntaxError: The requested module 'qa-data-tool/utils' does not provide an export named 'default'
men av någon anledning kan jag exportera modulerna från min aws-mapp korrekt.
Jag verkar inte kunna lista ut vad jag saknar. Jag har dubbelkollat och tror att allt är korrekt uppsatt, men jag är ganska säker på att jag saknar något litet som undgår mig.
Svar #1
En stjärnexport återexporterar inte standardexporten av en modul, annars skulle du ha tre default som konkurrerar mot varandra.
Du bör använda
antingen en namngiven export
export class EventsService { … }med en start återexport
export * from './events-service/events-service-request.js';eller en standardexport
export default class EventsService { … }med en aliaserings-omexport
export { default as EventsService } from './events-service/events-service-request.js';
