如何在没有插件的情况下在多个应用中使用共享组件

时间:2017-11-22 11:11:09

标签: ember.js ember-addon monorepo

我们有四个共享很多组件的应用程序。到目前为止,我们使用插件来管理这个共享代码,但是使用插件方法我们遇到了很多麻烦。

这样的事情:

App1
- basic-form-elements-addon
- feedback-form-addon
- tables-management-addon
App2
- feedback-form-addon
- tables-management-addon
App3
- basic-form-elements-addon
App4
- basic-form-elements-addon
- tables-management-addon

这种方法的问题在于更新插件是一个包含很多步骤的漫长过程:

  1. 将插件链接到app(使用纱线链接)
  2. 修改插件代码
  3. 将插件发布到npm
  4. 更新App1中的依赖关系
  5. (可能如果我有时间和精力,也可以在App2,3,4中更新依赖关系和使用情况,或者留给触及该代码的其他人:cry :)
  6. 除此之外,还有其他问题 - 维护8种不同的ember应用程序需要花费大量时间 - 更新ember版本 - 更新其他依赖项 - 保持相同的linting配置和其他工具

    这些是我们现在面临的最大问题。

    我不知道这个问题的最佳解决方案是什么,但我的想法是我们愿意 - 将所有插件合并到一个插件中(现在可能只需要部分ember树,它不应该对代码大小产生不良影响,对吧?) - 将所有代码移动到一个存储库(monorepo) - 使用addon不作为npm依赖,但不知何故从兄弟目录导入它(我不知道这是否可能)

    所以最后,我们最终会得到像这样的东西

    git (monorepo)
    - App1
    - App2
    - App3
    - App4
    - shared-code
    --- components
    --- helpers
    --- models
    --- ...
    

    这可能吗?我需要做什么才能实现此设置?或者你有更好的解决方案吗?

    感谢您提供任何帮助, 的Ondrej

0 个答案:

没有答案