1

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

像这样的东西:

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. 将插件链接到应用程序(使用纱线链接)
  2. 修改插件代码
  3. 将插件发布到 npm
  4. 更新 App1 中的依赖项
  5. (可能如果我有时间和精力,也可以更新 App2、3、4 中的依赖项和使用情况,或者将其留给其他接触该代码的人 :cry:)

除此之外,还有其他问题 - 维护 8 个不同的 ember 应用程序需要花费大量时间 - 更新 ember 版本 - 更新其他依赖项 - 维护相同的 linting 配置和其他工具

这些是我们现在使用这种方法面临的最大问题。

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

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

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

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

感谢您的任何帮助,Ondrej

4

1 回答 1

0

我认为您正在寻找ember in-repo 插件

您可以将所有插件和应用程序放在同一个文件夹中(mono-repo 样式),并通过在应用程序的 package.json 文件中提及它们来在您的应用程序中使用它们。

例如,如果您有这样的文件夹结构,

/addon-one
/addon-two
/app-one
/app-two

在您的每个应用程序的 package.json 中,您必须提及

"ember-addon": {
 "paths": [
   "../addon-one",
   "../addon-two"
 ]
},

您应该与这两个应用程序共享您的插件。

例如回购:https ://github.com/sureshdunga/ember-in-repo-addon-example

于 2017-11-27T15:28:56.887 回答