Angular 针对不同客户机的不同版本
我正在Angular 6中开发一个应用程序,希望能安装在许多客户机上 它们中的每一个都需要个性化,但它们有许多共同的部分 我希望有一个目录结构:Angular 针对不同客户机的不同版本,angular,npm,angular-cli,Angular,Npm,Angular Cli,我正在Angular 6中开发一个应用程序,希望能安装在许多客户机上 它们中的每一个都需要个性化,但它们有许多共同的部分 我希望有一个目录结构: /src /app /components /navbar /navbar.component.html /navbar.component.ts
/src
/app
/components
/navbar
/navbar.component.html
/navbar.component.ts
/footer
/footer.component.html
/footer.component.ts
/store
/store.component.html
/store.component.ts
/home
/home.component.html
/home.component.ts
/customer1
/navbar
/navbar.component.html
/navbar.component.ts
/home
/home.component.html
/home.component.ts
/customer2
/home
/home.component.html
/home.component.ts
/customer3
/footer
/footer.component.html
/footer.component.ts
如您所见,customer1自定义了导航栏和主页,2自定义了主页,3自定义了页脚
我想要的是在制作
npm run build
我可以做类似的事情
npm run build customer1
并获取目录下的文件(如果存在)和组件下的文件(如果没有)
你认为有可能吗?要进行此类管理/自动化,Angular提供的最佳工具是Angular示意图。看看,这是一个很好的起点 在您的案例中,您需要创建一个原理图,创建一个角度项目,其中设置了所有公共部分,我认为这些部分如下所示:
/src
/app
/components
/navbar
/navbar.component.html
/navbar.component.ts
/footer
/footer.component.html
/footer.component.ts
/store
/store.component.html
/store.component.ts
/home
/home.component.html
/home.component.ts
然后,在生成基本代码之后,您或您的客户将能够修改它,并像其他任何角度项目一样构建它。是的,您可以使用
npm脚本和ng build--environment=
执行类似的操作,但这并不意味着您必须这样做。您是否考虑过将您的通用组件作为Angular library或npm包的一部分,并为每位客户提供应用程序/回购?如果愿意,您还可以将其与角度示意图结合使用。您可以通过环境实现:
- 为你的客户创造一个新的环境
- 创建一个包含所有要更改的文件的新文件夹
- 打开angular.json文件并在中搜索配置选项
项目,并搜索您的环境(可能是为您创建它)
必须这样做)
- 查找文件替换并使用此语法替换
你需要的
- 如果你想为这个环境服务,你必须把它包括在
serve/configurations中的angular.json文件
解决与此相关的其他问题我问:
答案帮助我找到更优雅的解决方案,使用Environments属性(我创建了尽可能多的属性),而不是使用fileReplacements,使用这个变量在我的.ts文件中使用differents函数,或者在我的.html文件中使用ng if或ng show