返回博客首页
← 所有文章

推出官方 NativeScript 插件种子

2017年7月13日 — 作者:TJ VanToll

插件是 NativeScript 成为开发 iOS 和 Android 应用程序的引人注目的框架的关键部分。由于插件已成为应用程序必不可少的一部分,因此 NativeScript 团队正在采取措施确保 NativeScript 插件生态系统保持强大。

今天,我们很高兴宣布我们的第一个插件计划:用于构建 NativeScript 插件的官方插件种子

plugin-seed

该种子大量借鉴了Nathan Walker 的工作——感谢 Nathan!——并提供了一种简单的方法来构建 NativeScript 插件,这些插件易于创建、测试和维护。具体来说,以下是 NativeScript 插件种子开箱即用提供的一些功能。

功能 #1:智能脚手架

NativeScript 插件种子会自动设置您的 TypeScript 设置、演示项目以及配置文件(如您的 .gitignore.npmignorepackage.json)的默认设置。

这些智能默认值使您作为插件作者能够提高工作效率。例如,该种子会自动为原生 iOS 和 Android API 设置 TypeScript 自动完成。

native-apis

拥有一个一致的插件文件夹结构也带来了其他好处。例如,当您已经了解插件的文件夹结构和开发工作流程时,为 NativeScript 插件做出贡献会容易得多。

功能 #2:强大的开发工作流程

NativeScript 插件开发最困难的部分之一是提出一种工作流程,让您能够同时更改插件的源代码并在演示应用程序中查看这些更改。我们花了大量时间尝试使其正确,最终得到了我们认为非常有效的工作流程

现在,开发插件的感觉应该就像您正在处理一个普通的 NativeScript 应用程序一样——您可以进行更改并立即查看这些更改。

workflow

功能 #3:内置单元测试设置

测试是任何健壮软件生态系统的重要组成部分,NativeScript 插件世界也不例外。NativeScript 插件正在推动越来越多的关键任务应用程序;因此,重要的是插件作者拥有他们需要的测试工具,以确保其插件在发展过程中保持可靠性。

NativeScript 插件种子会自动为新的插件添加基于 Jasmine 的单元测试支持。您的插件的演示应用程序在其 demo/app/tests 文件夹中将有一系列示例测试,我们希望您会发现配置这些测试以验证您的插件是否按预期工作很容易。

功能 #4:内置 Travis CI 测试支持

拥有单元测试后,添加 CI(持续集成)工作流程有助于确保这些测试随着时间的推移继续通过。CI 工作流程帮助插件作者捕获其自身更改和社区拉取请求中的回归。

NativeScript 插件种子附带一个功能齐全的 .travis.yml 文件,该文件将您的测试应用程序部署到 Android 模拟器和 iOS 模拟器,并在这些模拟设备上运行您的测试。

您只需在 Travis CI 网站上启用插件的存储库,即可获得一些非常强大的功能。例如,在每次提交时,Travis 都会运行您的单元测试以检查潜在的回归。

travis-workflow

一旦您设置了此工作流程,就可以在插件中添加一个小徽章,以便您的用户知道您的插件已通过测试。查看NativeScript facebook 插件作为示例。

travis-build-passing

功能 #5:帮助您将插件发布到 npm 的脚本

最后,当您准备好与世界分享您的插件时,NativeScript 插件种子使发布变得像更改 package.json 文件中的几个字符串一样简单,然后运行发布脚本

该脚本处理发布过程中一些更棘手的问题,例如仅包含正确的 JavaScript 和 TypeScript 文件,并确保您不会发布完整的演示应用程序和测试文件。

立即开始

如果您一直在考虑构建 NativeScript 插件,现在是开始的好时机。如果您有现有的 NativeScript 插件,现在是将您的插件转换为新种子的格式以保持一致性的好时机,同时还可以利用种子提供的一些新功能。

为了帮助完成这些任务,我们在我们的文档站点上提供了一些新的插件文档文章。从有关构建插件的文章开始,然后继续学习有关插件开发的一些更高级主题。

提示:您还可以参考我们的新的 nativescript-facebook 插件,它是 Facebook iOS 和 Android SDK 的包装器,因为它是一个使用插件种子构建的插件的具体示例。

新的插件种子是我们正在进行的许多与插件相关的计划中的第一个。请告诉我们您的想法!您可以在此博客文章中发表评论,或加入我们位于NativeScript 社区 Slack 频道的 #plugins 频道。

现在是加入 NativeScript 插件开发的趣味世界的好时机 😄