我不得不认为这是一种独特的情况。 我的公司有三个应用程序。 App1,App2和App3。 实际上,这些应用程序只是为移动设备构建的网站。 (Html,Javascript,Css)。使用Angular JS将它们连接在一起。 一些应用程序具有相似的页面,因此共享相同的代码。不同的HTML,但相同的JavaScript(控制器)。
第一个版本真的只是手机上的webview。
2017年9月,我们在混合物中添加了cordova。科尔多瓦想要包装代码。 我们通过为每个应用程序添加cordova文件夹来修复此问题。在每个文件夹中都有一个cordova使用的www文件夹。我们只是将这个符号链接回Web代码。缺点是每个cordova应用程序都获得了app1,app2和app3的所有文件。
接下来,我们公司收购了另一家提供类似服务的公司。他们不想影响这些客户,因此决定只重用我们的应用程序,但使用其他徽标和颜色。
所以现在App1需要App1-company1。 APP1-Company2的。 App2-company1,App2-company2。 有了Cordova这太糟糕了,我们建立了一个新的登录页面。为应用程序的其他部分(我们动态设置)做一些新的样式。在Cordova,我们告诉它起始页面,该应用程序仍构建所有文件,但新的开始页面,新的应用程序。
我们想也许我们可能有时间从Angular JS转移到其他东西。我们熟悉的唯一其他框架是带有Ionic的角度2+,以照顾Cordova的东西。
我慢慢看到Angular 2没有像以前那样构建网站。它似乎不像以前那样分享文件。
我还在学习Angular 2,所以我想弄清楚如何设置角度2才能拥有多个应用程序?
我们开始了每个应用程序的路径是它自己的角度2应用程序/项目。 但不确定如何将其与其他公司一起使用?
我不知道我是否可以设置不同的html页面。而不是index.html。有app1Index.html
这反过来会指向其他版本,如src / app1 / app1.app.module.ts,它们会加载app1的组件?
与app2相同。
这将解决我尝试共享代码的第一个问题。我可以在多个地方使用相同的组件。
我不知道我是否可以使用我们的应用程序来实现这一目标。 app1-company2.html和app1-company2.module.ts。
不确定是否可以用角度2解决?
也许VueJs可以更好地处理这个问题?
答案 0 :(得分:1)
VueJS非常擅长共享代码。 一种选择是为包含组件的vuejs项目使用类似Vue Custom Element的东西。
https://github.com/karol-f/vue-custom-element
这将允许您编写组件,然后使用webpack将它们打包成文件。我认为如果你安装vue-webpack样板来创建你的组件库,这几乎可以开箱即用'
然后,您可以将打包的文件(js,css等)包含到要使用组件的项目中。这可以通过index.html文件中的简单src引用来完成,也可以通过npm发布它们并以这种方式安装它们。这是你的选择。