【发布时间】:2018-10-18 15:07:26
【问题描述】:
注意:这不是this 或this 其他问题的欺骗。继续阅读:这个问题特定于代码共享模板。
我正在使用 NativeScript、Angular 和代码共享模板(请参阅:@nativescript/schematics)进行一些非常基本的实验。
现在我正在对框架如何支持不同的“构建配置”进行一些探索/ poc 工作。需要明确的是,我正在寻找一种简单的(希望是官方的)方法,让应用程序根据当前平台(web/ios/android)和环境使用不同版本的特定文件(我们称之为 configuration.ts) (开发/生产/登台?)。
做第一部分显然是微不足道的——毕竟这是代码共享原理图的主要目的。因此,同一文件的不同版本由不同的扩展名标识。 This page explain things pretty simply.
如果框架/模板支持任何可用于在文件的调试/发布(甚至更好的开发/暂存/生产)版本之间切换的类似的基于约定的规则,我并不容易得到。以 config.ts 文件为例,该文件包含基于环境的不同参数。
我已经对该主题进行了一些研究,但我无法找到结论性的答案:
- the old and now retired documentation for the appbuilder platform 提到了文件的(.debug. 和 .release.)命名约定。我不认为这项工作了。
- 其他消息来源提到在调用
tns build/tns run期间传递参数,然后通过 webpack env 变量获取它们...See here。这可能有效,但看起来有点奇怪 - 提到的第三个选项是使用挂钩来自定义构建 (or use a plugin that should do the same)
- 最后,出于某种奇怪的原因,@nativescript/schematics 似乎生成了一个默认项目,其中包含两个名为
environment.ts和environment.prod.ts的文件。我怀疑那些只适用于项目的网络版本(阅读:ng serve) - 我无法让移动编译器识别以 debug.ts、prod.ts 或 release.ts 结尾的文件
虽然我试图做的事情可能不仅仅得到支持(还没有?),但普遍的困惑和对此事的不同意见让我觉得我可能在某个地方遗漏了一些东西。
如果这个 IS 以某种方式受到支持,我还想知道它如何与 NativeScript Sidekick 应用程序集成,该应用程序通常被建议作为一种工具来简化 NativeScript 应用程序的构建/运行过程(没有为 Sidekick 自动化的 tns 命令指定附加参数的方法,唯一可用的选项是在调试/发布模式之间切换),但这可能最好留给另一个问题。
【问题讨论】:
标签: configuration nativescript angular2-nativescript nativescript-codesharing