Javascript 在两个web项目之间共享代码
我有两个不同的网络应用,都是用React开发的。 这两个应用程序应该共享一些组件。 我希望有一个大致的项目结构如下: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文件夹中执行。 在本例中,当我尝试
.
├── cms-client
├── my-app
└── shared
其中:
和cms客户端
是两个标准的React应用程序李>myapp
是一个包含共享组件的文件夹,其他两个应用程序应使用该文件夹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
donpm链接上共享
它将在node_模块中创建符号链接,指向本地共享的
,如果您将共享文件全部保存在单独的git repo中,您可以始终遵循并将其视为第三方组件。构建过程通常决定是将文件作为普通JS文件处理还是作为React文件处理?您使用的是什么g是否要传输React文件?我的第一印象是,您只需要正确配置构建工具,但您没有提供任何相关信息。@FelixKling我使用的是标准的React脚本
命令。不幸的是,在React文档中,他们只是说文件应该在src
文件夹中。可能会吗对于Babel或Webpack来说,ln
技巧是不够的。这是一个很好的解决方案!我正在搜索更轻的东西,使用npm链接
意味着我的共享
文件夹变成了一个完整的npm
模块。