Я хочу создать плагин newman в виде пакета npm, а также использовать этот пакет в качестве библиотеки.У меня есть файл src / index.ts, который должен иметь этот экспорт для запуска
// in package newman-reporter-custom/index.ts
module.exports = function(newmanEventEmitter: any, reporterOptions: any, collectionRunOptions: any) {
...
};
У меня также есть этот бит в моем package.json: "main": "lib/index.js",
и "outDir": "lib",
в моем tsconfig.json.
Также я хочу экспортировать некоторые другие классы для использования того же пакета, что и библиотеки.
// in package newman-reporter-custom/index.ts
import { foo } from "./foo";
export { foo };
Я также хочу экспортировать другие символы из этого index.ts, так что мне может потребоватьсяпроект в виде библиотеки, такой как
// other npm package index.ts
import { foo } from "newman-reporter-custom";
Однако, кажется, что в newman-reporter-custom / index.ts я могу сделать только один из обоих, либо module.exports = function(...),
, либо export { foo };
.
Если я попытаюсь либо в отдельности, то все будет работать нормально.
Если я попытаюсь сделать и то, и другое (по-разному), либо новичок не сможет загрузить мой пакет, говоря что-то вроде TypeError: Reporter is not a constructor
,или я не могу импортировать пакет как библиотеку с ошибками типа TypeError: Class extends value undefined is not a function or null
.
Мне кажется, что module.exports может быть либо функцией (конструктором), либо набором символов, но не обоими.
Итак, как же работает чистый способ как удовлетворить новичка, так и обеспечить экспорт функциит, а также экспорт других символов?Я гибок в том, как мне требуется одна посылка из другой.