我正在构建一个简单的 NativeScript 应用程序,并尝试使用 TypeScript 基本代码来完成它。
我在 OSX 下使用 Sublime Text 3。
通过查看与NativeScripttns_modules
存储库匹配的演示应用程序,我意识到,因此我将它作为 Git 子模块添加到我的文件夹中,然后编译它()。这是集成这些模块的错误方式吗?app/
npm i && grunt
然后我意识到我不能只运行tns emulate android
由文件组成的应用程序.ts
:我也必须编译它们。所以我设置了一个 Grunt 任务来这样做,但是处理依赖关系并不容易。我最终得到了Gruntfile.coffee
这个app/
:
module.exports = (grunt) ->
grunt.loadNpmTasks 'grunt-typescript'
grunt.config 'typescript',
build:
src: [
'**/*.ts'
'!*_modules/**'
]
options:
references: [
'tns_modules/bin/dist/definitions/**/*.d.ts'
]
target: 'es5'
sourceMap: false
declaration: false
module: 'commonjs'
noResolve: true
它适用于简单的代码,例如我可以Observable
通过编写来扩展模块:
import observable = require("data/observable");
class Activities extends observable.Observable {
//...
}
然后我编译grunt
(文件与.js
文件一起创建.ts
)并运行tns emulate android
(使用 Genymotion 模拟器)。
它是否适合我的开发?当我使用 Telerik Platform 时,编译过程是隐藏的,所以我不确定我做对了。
现在我正在尝试直接在页面的 XML 文件中使用 Telerik 的侧边栏模块,他们这样做的方式是:
<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded" xmlns:tsb="./tns_modules/bin/dist/apps/TelerikNEXT/TelerikUI/side-bar">
<tsb:SideBar title="MyApp">
...
但我得到这个错误:
E/TNS.Native(2456):TypeError:无法读取未定义 E/TNS.Native(2456)的属性“android”:文件:“/data/data/org.nativescript.scmobile/files/app/./tns_modules/ bin/dist/apps/TelerikNEXT/TelerikUI/side-bar,行:39,列:39
对应于:
this._android = new com.telerik.android.primitives.widget.sidedrawer.RadSideDrawer(this._context);
知道我应该如何包含这些模块吗?请注意,我是移动开发新手。