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

Rap*_*Mex 2 javascript modularity ecmascript-6 reactjs react-scripts

我有几个 ReactJS 项目,并且开始拥有很多可重用的组件。我不想将它们发布到npm或将它们与项目根目录下导入的 node_modules目录混合。他们应该去哪里?

我的项目如下所示:

  • 项目1/
    • 节点模块/
    • 源代码/
      • 索引.js
      • A.jsx
  • 项目2/
    • 节点模块/
    • 源代码/
      • 索引.js
      • A.jsx

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

我尝试创建到A.jsxinsrc/或 in 的符号链接node_modules/,但无法编译,就像react-scripts无法处理它们一样。您是如何解决这个问题的?感谢您的帮助!

GG.*_*GG. 5

\n

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

\n
\n\n

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

\n\n
\n

我尝试在 src/ 或 node_modules/ 中创建到 A.jsx 的符号链接,但是 \xe2\x80\xa6

\n
\n\n

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

\n\n
\n

我不想将它们发布到 npm

\n
\n\n

如果你不想在 NPM 上发布你的组件(我两者都不做),我仍然建议你将你的组件提取到他们自己的存储库中(GitLab 有免费的私有存储库)。

\n\n

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

\n\n
npm install git+ssh://git@git.mydomain.com:Username/Repository-name\n
Run Code Online (Sandbox Code Playgroud)\n\n

它将在您的中创建一个条目package.json

\n\n
"Repository-name": "git+ssh://git@git.mydomain.com:Username/Repository-name"\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
import { ComponentA, ComponentB } from \'Repository-name\'\n
Run Code Online (Sandbox Code Playgroud)\n