Zal*_*oza 16 babel reactjs react-native create-react-app monorepo
我想开始一个同时具有web和reactnative接口的新应用程序.
我决定将所有业务 - 非环境依赖代码转移到第三个包-aka sdk-我可以在两者之间共享反应和反应原生.
所以我的项目现在有4个模块
服务器 - nodejs表达api.
有没有标准的方法来实现这样的结构?
我很可能会喜欢
**面临的挑战**
如何在同时处理sdk和Web模块的同时避免重建步骤?
对于您正在考虑的项目结构,Yarn 工作区听起来是一个很好的方法。
你可以有一个packages
目录,你可以在其中添加你的项目:
/packages
- web
- sdk
- native
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用babel来监视每个包的代码更改,babel -w
而 yarn 工作区将负责将它们链接在一起。
如果 babel watchers 正在运行,您对 sdk 所做的任何更改都将反映到web
和native
包。您还可以使用类似concurrent 之类的方法将所有这些组合在一起,以使用单个命令启动观察者。
我与人合着了一个开源库,我们遵循类似的结构,您可以在此处查看。这个项目的不同之处在于我们的 redux 逻辑在一个单独的 repo 中。
为了让 jest 工作,你可以test
在你的.babelrc
文件中添加一个env 来转换模块。因此,您可以添加两个不同的环境,例如test
转换为 commonjs 模块的es
环境和保留 ES 模块的环境,以便您的用户可以利用 tree-shaking。示例配置
希望这能给你一个好的起点:)
小智 -1
您可以尝试这样的项目结构:
| package.json
|- node_modules
|- Web
| package.json
|- SDK
| package.json
|- Mobile
| package.json
|- Server
| package.json
Run Code Online (Sandbox Code Playgroud)
然后您可以在根文件夹中安装所有内容并设置 NODE_PATH 环境变量:
export NODE_PATH='yourdir'/node_modules
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
492 次 |
最近记录: |