我已经在私有npm存储库上创建了ExpressJS包装器,我想导出自己的lib和expressjs本身,例如:
index.ts
export { myExpress } from './my-express'; // my express wrapper
import * as express from 'express';
export = express; // doesn't works!
如何在打字稿中制作?
答案 0 :(得分:2)
Express 4的问题在于它使用了与ES模块不兼容的不赞成使用的CommonJS导出约定,它包含唯一的导出(express()
工厂),其余的导出定义为其属性。它使用传统的TypeScript export = ...
语法,因此无法将其重新导出为ES模块export * from 'express'
,也不能使用合成的默认重新导出export { default } from 'express'
。
鉴于模块应重新导出express
的导出和myExpress
的{{1}}导出,因此应为:
./my-express
它可以导入为:
import * as express from 'express';
export default express;
export { myExpress } from './my-express';
对于常规ES模块,import express, { myExpress } from '...';
可以重新导出:
*
答案 1 :(得分:2)
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 }