【问题标题】:Babel Plugin Module Alias not working w/ require('react')Babel 插件模块别名无法使用 require('react')
【发布时间】:2018-04-26 01:15:51
【问题描述】:

我正在使用electron-forge 构建一个应用程序,除了它在我的项目配置中将.babelrc 扩展到.compilerc 之外,这并不重要。

我正在使用infernojs / inferno-compatbabel-plugin-module-resolver,将对react 的引用别名为inferno-compat

.compilerc / .babelrc

"plugins": ["babel-plugin-inferno", "transform-async-to-generator", "transform-es2015-classes",
          ["module-resolver", {
                    "root": ["."],
                    "alias": {
                        "react": "inferno-compat",
                        "react-dom": "inferno-compat"
                    }
                }]],

到目前为止,使用 .jsx 文件可以正常工作,但是当我安装一个包时,例如 react-bootstrap-modal 有这样一行:

Modal.js:

var react = require('react')

我一个错误:

未捕获的错误:找不到模块“反应” 在 Module._resolveFilename (module.js:485:15)

【问题讨论】:

    标签: reactjs babeljs infernojs


    【解决方案1】:

    显然是aliasing modules in packages does not work,因为 Babel 默认不编译第三方模块。

    我的解决方法是将inferno-compat 符号链接到reactreact-dom

    cd node_modules
    ln -s inferno-compat react
    ln -s inferno-compat react-dom
    

    附带说明:Git 可以很好地处理符号链接。如果您签入这些符号链接,Git 会将它们视为普通文件而不解析它们。

    【讨论】:

      猜你喜欢
      • 2018-05-19
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 2021-11-14
      • 2016-03-31
      相关资源
      最近更新 更多