Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该在哪里存储我的可重用组件?_Javascript_Reactjs_Ecmascript 6_Modularity_React Scripts - Fatal编程技术网

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

Javascript 我应该在哪里存储我的可重用组件?,javascript,reactjs,ecmascript-6,modularity,react-scripts,Javascript,Reactjs,Ecmascript 6,Modularity,React Scripts,我有几个ReactJS项目,我开始有很多可重用的组件。我不想将它们发布到npm,也不想将它们与项目根目录下导入的节点\ u模块混用。他们应该去哪里 我的项目如下所示: npm install git+ssh://git@git.mydomain.com:Username/Repository-name 项目1/ 节点单元/ src/ index.js A.jsx 项目2/ 节点单元/ src/ index.js A.jsx A.jsx定义了一个可重用的组件,我只是到处复制文

我有几个ReactJS项目,我开始有很多可重用的组件。我不想将它们发布到npm,也不想将它们与项目根目录下导入的节点\ u模块混用。他们应该去哪里

我的项目如下所示:

npm install git+ssh://git@git.mydomain.com:Username/Repository-name
  • 项目1/
    • 节点单元/
    • src/
      • index.js
      • A.jsx
  • 项目2/
    • 节点单元/
    • src/
      • index.js
      • A.jsx
A.jsx定义了一个可重用的组件,我只是到处复制文件。。。我只想把它放在一个地方,我的项目将它与从“A”导入A一起使用

我曾尝试在
src/
node\u modules/
中创建指向
A.jsx的符号链接,但无法编译,例如
react脚本
无法处理它们。你是如何解决这个问题的?谢谢你的帮助

我不想让它们与导入的节点_模块混合在一起

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

我尝试在src/或node_modules/中创建指向A.jsx的符号链接,但是

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

我不想将它们发布到npm

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

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

npm install git+ssh://git@git.mydomain.com:Username/Repository-name
它将在您的
包中创建一个条目。json

"Repository-name": "git+ssh://git@git.mydomain.com:Username/Repository-name"
然后,您可以导入可重用组件:

import { ComponentA, ComponentB } from 'Repository-name'

对它们进行预编译,然后导入编译后的版本。我使用编译后的版本将其放入
节点\u模块中,但它仍然不起作用。你能在回答中提供一个例子吗?事实上,是的,编译作品,我还解决了其他问题。但是如果可能的话,我想避免这个编译步骤,只使用可重用的
src
编译步骤当然应该是自动化的,而不是使用babel repl。这就像使用babel cliI在npm脚本中添加一行一样简单,因为react脚本不会通过本地babel运行节点_模块,所以它会添加关于编译react组件的注释,因为这对于OP仍然会失败。