Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FlowTypes如何从专用npm模块导入类型_Javascript_Npm_Flowtype - Fatal编程技术网

Javascript FlowTypes如何从专用npm模块导入类型

Javascript FlowTypes如何从专用npm模块导入类型,javascript,npm,flowtype,Javascript,Npm,Flowtype,我正在编写内部使用的私有npm包,我还想在其中包含一些流类型,这些流类型将在内部项目之间共享,并以以下格式从“我们的私有库”导入import type{SomeType},但我在这样做时遇到了问题,在npm包中包含流类型的最佳方法是什么 目前,我正在使用babel传输所有ES代码,然后还使用flow copy source将原始文件复制到附带的传输文件上,但扩展名为.js.flow,但这意味着这些文件的名称应该与传输文件相同 例如,如果我在/super schema/index.js中使用 ex

我正在编写内部使用的私有npm包,我还想在其中包含一些流类型,这些流类型将在内部项目之间共享,并以以下格式从“我们的私有库”导入
import type{SomeType}
,但我在这样做时遇到了问题,在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');
}
然后我可以这样导入

从“我们的私有库”导入{superSchema}


但是flowtype呢<代码>从“我们的私有库”导入类型{SuperSchemaType}实际上不起作用

您的一般方法是正确的(使用流复制源),但如果您想使用模块主入口点之外的类型,则需要以某种方式导出类型。您可以通过执行以下操作明确地做到这一点

export type {
  SuperSchemaType
} from './super-schema';
或者,如果您使用的是babel 7,则导出类型*可能对您有用

export type * from './super-schema';

如果我犯了错误,这里似乎有相关的讨论。您有一些流类型库。你用babel和lost flow来传输它,用恢复流的方法来解决它不起作用?您是否能够仅使用主要项目(使用库)进行传输?@KirillGlazunov flowtypes在我的库中工作,我真正想做的是从该库导入流类型,以便在其他项目中使用,如so
import type{SomeType}从“我们的私有库”
中,您是单独传输库还是作为使用库的项目的一部分(与项目一起传输)?我在发货前单独传输库,但我也会将未传输的es6模块和带有所有流类型的es6保留文件与
.js.flow
一起发送,因此,有不同版本的相同文件可用于不同的用途(node commonjs、es6等)。谢谢,我的问题是,我试图以某种方式将普通js导出和流类型混合在一起,一旦我开始单独处理它们,一切都很好