代码之家  ›  专栏  ›  技术社区  ›  Miha Jamsek

以flow编写的包npm项目

  •  0
  • Miha Jamsek  · 技术社区  · 8 年前

    我必须发布一个 npm包 这是用 并使用 巴别塔

    我所做的是编译所有源文件。然后我从 dist公司/ 然后把它们放到其他目录中。我还把 包裹json 然后我在npm上发布了这个包。

    然后,我可以正常安装项目,并要求它成为我的项目。然而,当我运行项目时,它会抛出我需要的错误 babel-core babel-polyfills (将其作为开发人员依赖项安装)。问题是因为我的新项目只需要我自己的包,而不使用babel或类似的东西,所以我认为在我的新项目中要求babel依赖项没有任何意义。

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

    2 回复  |  直到 7 年前
        1
  •  1
  •   Kenneth Truong    8 年前

    您添加了吗 主要的 文件 放进你的包裹里。json?

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

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

    你的文件应该是

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

    还可以防止安装软件包的用户需要安装Transpiler(即 巴别塔 )将它们添加到 开发依赖性

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

    请不要放置测试线束或 输送机 在依赖项对象中。看见 开发依赖性 在下面

    还要将流添加到您的dist add https://github.com/AgentME/flow-copy-source

    flow-copy-source -v src dist

        2
  •  0
  •   Miha Jamsek    8 年前

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

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

    asnyc函数编译正确。

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