NodeJS: экспресс-экспорт Typescript из оболочки - PullRequest
0 голосов
/ 10 января 2019

Я создал оболочку ExpressJS для частного репозитория npm, и я хочу сам экспортировать мои lib и expressjs, например ::

index.ts

export { myExpress } from './my-express'; // my express wrapper
import * as express from 'express';
export = express; // doesn't works!

как я могу сделать это в машинописи?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Синтаксис export = express; неверен.

Вы можете сделать либо:

import { myExpress } from './my-express';
import * as express from 'express';

export {
  myExpress,
  express
}

или

import { myExpress } from './my-express';
export { myEpxress }

import * as express from 'express';
export { express }
0 голосов
/ 10 января 2019

Проблема с Express 4 заключается в том, что он использует устаревшее соглашение об экспорте CommonJS, которое не совместимо с модулями ES, оно содержит единственный экспорт (express() фабрика), остальные экспорты определяются как его свойства. Он использует устаревший синтаксис TypeScript export = ..., поэтому его нельзя реэкспортировать как модуль ES export * from 'express', а также нельзя использовать синтетический реэкспорт по умолчанию, export { default } from 'express'.

Учитывая, что модуль должен реэкспортировать экспорт из express и myExpress экспорт из ./my-express, он должен быть:

import * as express from 'express';
export default express;

export { myExpress } from './my-express';

Может быть импортировано как:

import express, { myExpress } from '...';

Для обычного модуля ES, * может быть реэкспортирован:

export * from 'some-package';
export { myExport } from './my-package';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...