我在私有(private) npm 仓库上创建了一个 ExpressJS 包装器,我想导出我的库和 expressjs 本身,例如:
索引.ts
export { myExpress } from './my-express'; // my express wrapper
import * as express from 'express';
export = express; // doesn't works!
我怎样才能用 typescript 制作它?
最佳答案
Express 4 的问题在于它使用了与 ES 模块不兼容的已弃用的 CommonJS 导出约定,它包含唯一的导出(express()
工厂),其余导出已定义作为它的属性。它使用遗留的 TypeScript export = ...
语法,所以它不能重新导出为 ES 模块 export * from 'express'
,也不能使用合成默认重新-export, 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';
关于javascript - Node : Typescript export expressjs from wrapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54134222/