从 Git 子module存储库导入 React 组件

IT技术 javascript reactjs git git-submodules
2021-05-19 20:03:25

我有一个用 React 开发的父存储库,里面有一个子module(也是由 React 开发的):

项目文件夹结构如下所示:

parent 
  /.git
  /nodemodule
  /src
  /subModules/childProject
     /.git
     /src
       /js
         /x.jsx //  i want this file from parent project
     /...
  /...

我想访问和使用x.jsx父项目中组件。我在我的父项目中像打击一样导入了它:

import X from '../subModules/childProject/src/js/x.jsx'

但它给了我unexpected token

   7 |   return (
>  8 |     <article className="center">
     |     ^
   9 |       this is test global component with in child Project
  10 |     </article>
  11 |   )

看起来它无法转换它,因为我只用旧的 JavaScript 方式编写了一个测试函数,例如:

export default function test(x) {
  return x * 2
}

它导入时没有任何错误并且可以正常工作,但是当我以如下箭头样式编写函数时:

export default function test(x) => x * 2

这是行不通的。看起来这只是转译module的运行时错误,我如何将react组件从子子module转译和导入到父存储库?

1个回答

问题是 Babel 不知道项目根目录下有子module项目,只需将我的.babelrc文件更改babel.config.js并配置它就babelrcRoots可以解决问题:

现在我的babel.config.js文件看起来像这样:

module.exports = {
  "presets": [
    "@babel/preset-react",
    "@babel/preset-env"
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread"
  ],
  "babelrcRoots": [ "./", "./subModules/someFolder" ]
}

现在我可以从父项目中的子存储库导入任何react组件和 JS module,并且它可以正常工作。