我应该在哪里存储我的React可重用组件?

时间:2018-03-30 20:25:30

标签: javascript reactjs ecmascript-6 modularity react-scripts

我有几个ReactJS项目,我开始有很多可重用的组件。我不想将它们发布到 npm ,或者将它们与项目根目录中的导入的node_modules 目录混合在一起。他们应该去哪儿?

我的项目如下:

  • PROJECT1 /
    • node_modules /
    • 的src /
      • index.js
      • A.jsx
  • 项目2 /
    • node_modules /
    • 的src /
      • index.js
      • A.jsx

A.jsx 定义了一个可重用的组件,我只是在任何地方复制文件...我想只将它放在一个地方,我的项目将它与import A from 'A'一起使用

我尝试在A.jsxsrc/中向node_modules/创建符号链接但不会编译,例如react-scripts无法处理它们。你是怎么解决这个问题的?谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

  

我不希望它们与导入的node_modules混合使用

为什么不呢?将可重用组件提取到自己的库中,这是使它们可重用的最佳方法。解压缩后,您可以通过仅导入所需内容来编写项目。您也可以编写自己的测试而无需运行整个项目的测试。最后,您可以独立于项目处理不同版本的组件。

  

我试图在src /或node_modules /中为A.jsx制作符号链接但是......

将文件从一个项目符号化到另一个项目可能是一个好主意,但您要在项目之间创建依赖关系,而不是在项目和组件库之间创建依赖关系。如果要部署使用项目A中的组件的项目B,则需要部署两个项目并在服务器上重新创建符号链接。此外,项目A可能是一个比简单组件库更大的依赖项(具有自己的依赖项)。

  

我不想将它们发布到npm

如果您不想在NPM上发布您的组件(我也不这样做),我仍然建议您将组件提取到自己的存储库中(GitLab有免费的私有存储库) )。

然后您可以直接从存储库安装库,如下所示:

npm install git+ssh://git@git.mydomain.com:Username/Repository-name

它会在您的package.json

中创建一个条目
"Repository-name": "git+ssh://git@git.mydomain.com:Username/Repository-name"

然后您可以导入可重复使用的组件:

import { ComponentA, ComponentB } from 'Repository-name'
相关问题