Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 在两个web项目之间共享代码_Javascript_Reactjs_Gulp_Setup Project - Fatal编程技术网

Javascript 在两个web项目之间共享代码

Javascript 在两个web项目之间共享代码,javascript,reactjs,gulp,setup-project,Javascript,Reactjs,Gulp,Setup Project,我有两个不同的网络应用,都是用React开发的。 这两个应用程序应该共享一些组件。 我希望有一个大致的项目结构如下: . ├── cms-client ├── my-app └── shared 其中: cms客户端和myapp是两个标准的React应用程序 shared是一个包含共享组件的文件夹,其他两个应用程序应使用该文件夹 我试图在应用程序的两个src文件夹中添加一个符号链接,如: ln -s ../../shared/ . 在每个应用程序的src文件夹中执行。 在本例中,当我尝试

我有两个不同的网络应用,都是用React开发的。 这两个应用程序应该共享一些组件。 我希望有一个大致的项目结构如下:

.
├── cms-client
├── my-app
└── shared
其中:

  • cms客户端
    myapp
    是两个标准的React应用程序
  • shared
    是一个包含共享组件的文件夹,其他两个应用程序应使用该文件夹
我试图在应用程序的两个
src
文件夹中添加一个符号链接,如:

ln -s ../../shared/ .
在每个应用程序的
src
文件夹中执行。 在本例中,当我尝试使用共享组件时,编译失败:

../shared/Example.js
SyntaxError: /my-long-project-path/React/shared/Example.js: Unexpected token (6:12)

  4 |     render() {
  5 |         return (
> 6 |             <div>
    |             ^
  7 |                 <p>I am an Example of Shared Component</p>
  8 |             </div>
  9 |         )
。/shared/Example.js
SyntaxError:/my long project path/React/shared/Example.js:意外标记(6:12)
4 | render(){
5 |返回(
> 6 |             
|             ^
7 |我是共享组件的一个例子

8 | 9 | )
就像它被编译为标准js文件,而不是React jsx文件一样

因此,我正在尝试一种不同的方法,使用
jsconfig.json
文件的自定义配置。现在,我的想法是以某种方式注入
共享
文件夹,但这似乎是不可能的


我可以编写一个Gulp脚本来查看
共享
文件夹,然后复制两个项目的
共享
文件夹中的内容,但这不是一个最佳解决方案,而且非常容易出错(在我的IDE中,我需要注意我正在编辑的三个
共享
文件夹中的哪一个)。此外,标准的
react scripts
已经在查看
src
文件夹中的任何更改。因此,如果有人有更好的解决方案,那就太好了!!!

你能在
共享的
上执行
npm链接吗

这将编译、打包并复制到您机器上的某个位置

然后在
cms客户端
myapp
do
npm链接上共享


它将在node_模块中创建符号链接,指向本地共享的

,如果您将共享文件全部保存在单独的git repo中,您可以始终遵循并将其视为第三方组件。构建过程通常决定是将文件作为普通JS文件处理还是作为React文件处理?您使用的是什么g是否要传输React文件?我的第一印象是,您只需要正确配置构建工具,但您没有提供任何相关信息。@FelixKling我使用的是标准的
React脚本
命令。不幸的是,在React文档中,他们只是说文件应该在
src
文件夹中。可能会吗对于Babel或Webpack来说,
ln
技巧是不够的。这是一个很好的解决方案!我正在搜索更轻的东西,使用
npm链接
意味着我的
共享
文件夹变成了一个完整的
npm
模块。