Babel插件模块别名无法工作w / require('反应')

时间:2017-11-13 11:10:03

标签: reactjs babel infernojs

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

我正在使用infernojs / inferno-compatbabel-plugin-module-resolver来对reactinferno-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)

1 个答案:

答案 0 :(得分: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会将它们视为普通文件而不是解决它们。