【问题标题】:Use npm modules written in ES6 with react-scripts使用 ES6 编写的 npm 模块和 react-scripts
【发布时间】:2018-05-26 08:54:54
【问题描述】:

在我的项目中,我需要使用 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 错误,我停止手动编译它们。

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

【问题讨论】:

    标签: javascript ecmascript-6 create-react-app ecmascript-5 react-scripts


    【解决方案1】:

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

    正如the documentation 解释的那样,该软件包包含一个用于浏览器的捆绑包,其中包含在客户端运行它所需的填充节点功能(流等)。

    它应该被用作全局:

    import 'ipfs-api/dist';
    
    ipfs(...)
    

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

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

    【讨论】:

    • 感谢您提供翔实的回答,我会检查并回复您
    • 我最终决定从头开始构建 react 应用程序,而不是使用 create-react-app 并弹出配置。幸运的是,该应用还处于初始阶段
    • 很高兴您解决了这个问题。 create-react-app eject 提供了一个合理的样板项目,可以比任何其他 React+Webpack 启动器更好或更差。
    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2021-04-02
    • 2018-10-13
    • 2015-09-04
    • 2017-05-16
    • 2016-12-22
    相关资源
    最近更新 更多