用流写的包npm项目

时间:2018-04-09 10:11:51

标签: javascript node.js npm babel flowtype

我必须发布一个用流程编写并使用 babel 编译的 npm包

我做的是编译了所有源文件。然后我从 dist / 复制编译后的文件,并将它们放到其他目录中。我还在那里放了 package.json 并对其进行了编辑,然后我在npm上发布了包。

然后我可以正常安装项目并要求我的项目。但是当我运行我的项目时,它会抛出我需要babel-corebabel-polyfills的错误(将它们安装为dev-dependencies)。问题是,因为我的新项目只需要我自己的包,并且不使用babel或类似的东西,所以我认为在我的新项目中要求babel依赖项没有意义。

我的问题是,如何打包我用Flow编写并由babel编译的库,这样我就可以在其他地方使用这个包而不需要babel。

2 个答案:

答案 0 :(得分:1)

您是否已将主要文件添加到package.json中?

https://docs.npmjs.com/files/package.json#main

https://docs.npmjs.com/files/package.json#files

您的文件应该是

protected void kill() {
        Process.killProcess(Process.myPid());
    }

另外,为了防止安装软件包的用户需要安装转发器(即 babel ),请将它们添加到 devDependencies

直接来自https://docs.npmjs.com/files/package.json#dependencies

  

请不要在依赖项对象中放置测试工具或转发器。请参阅下面的 devDependencies

另外,要向您的dist添加流量,请添加https://github.com/AgentME/flow-copy-source

"files": [ "dist/**" ],

答案 1 :(得分:0)

问题在于使用错误定义的预设 在我的babelrc我只定义了 preset: "env"未指定它需要在节点8及更高版本上运行,因为代码使用async。 因此我将预设定义为:

preset: ["env", {
    targets: {
        "node": "8.9.1"
    }
}

asnyc函数编译正确。

另外,感谢@Kenneth,我使用了flow-copy-source将类型添加到我的库中,因此可以在intelisense中看到它。