我正在编写私有的npm包以供内部使用,我也想在那里包含一些import type {SomeType} from 'our-private-lib'
流类型,这些流类型将在内部项目之间共享并以以下格式导入,但是这样做很麻烦,最好的方法是在其中包含流类型npm包?
目前,我正在使用babel转译所有ES代码,然后还flow-copy-source
用于将原始文件与已转译的附带.js.flow
扩展名的文件一起复制,但是那意味着这些文件的名称应与转译的文件相同?
例如,如果我有文件中/super-schema/index.js
有
export type SuperSchemaType = {
prop1: boolean,
prop2: string
}
const SuperSchema = {
prop1: true,
prop2: 'Hello'
}
module.exports = SuperSchema;
然后package.json指向要像这样index.js
导出的主文件SuperSchema
module.exports = {
superSchema: require('./super-schema.js/index.js');
}
然后我可以像这样导入
import {superSchema} from 'our-private-lib';
但是流类型呢?import type { SuperSchemaType } from 'our-private-lib';
真的不起作用
常规方法是正确的(使用flow-copy-source),但是如果要从模块的主入口点使用类型,则需要以一种或另一种方式导出类型。您可以通过做类似的事情来明确地做到这一点
export type {
SuperSchemaType
} from './super-schema';
或者,如果您使用的是babel 7,则导出类型*可能对您有用
export type * from './super-schema';
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句