2

在我的项目中,我需要将 npm 模块ipfs-apicreate-react-app.

我可以运行npm start并运行该项目。

但是当我尝试用 构建项目时react-scripts build,它会引发以下错误

编译失败。

无法缩小此文件中的代码:

./node_modules/ipfs-api/src/utils/module-config.js:7

在这里阅读更多:https ://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#npm-run-build-fails-to-minify

根据错误日志中提供的链接中的建议,我尝试使用,

"dependencies": {
     ...
     "ipfs-api": "github:atfornes/js-ipfs-api#transpiled",
     ...
}

而不是"ipfs-api": "^22.0.0",. 虽然这解决了 的错误ipfs-api,但其他依赖模块(可能与 一起安装ipfsapi)不断给出相同类型的Failed to minify错误,我停止手动编译它们。

在使用命令之前,有没有办法将所有依赖节点模块转换为 es5 react-scripts build?或者有什么其他方法可以解决这个问题?

4

1 回答 1

2

通常客户端或平台无关的包在发布时被编译为 ES5。您遇到此问题可能表明该软件包不适用于客户端。

正如文档所解释的,该包包含一个用于浏览器的包,其中包括在客户端运行它所需的 polyfill Node 功能(流等)。

它应该用作全局:

import 'ipfs-api/dist';

ipfs(...)

在使用命令 react-scripts build 之前,有没有办法将所有依赖节点模块转换为 es5?

这将需要弹出 create-react-app 配置并配置 Webpack 以正确转换此包。文档中的这个示例显示了应如何将特定于节点的部分配置为捆绑浏览器。

于 2018-05-26T09:47:33.563 回答