我必须发布一个用流程编写并使用 babel 编译的 npm包。
我做的是编译了所有源文件。然后我从 dist / 复制编译后的文件,并将它们放到其他目录中。我还在那里放了 package.json 并对其进行了编辑,然后我在npm上发布了包。
然后我可以正常安装项目并要求我的项目。但是当我运行我的项目时,它会抛出我需要babel-core
和babel-polyfills
的错误(将它们安装为dev-dependencies)。问题是,因为我的新项目只需要我自己的包,并且不使用babel或类似的东西,所以我认为在我的新项目中要求babel依赖项没有意义。
我的问题是,如何打包我用Flow编写并由babel编译的库,这样我就可以在其他地方使用这个包而不需要babel。
答案 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中看到它。