The repository contains several packages and apps:
tns-core-modules
- The core NativeScript TypeScript modules used to develop NativeScript apps.apps
- UI app used for manual testing and automation.e2e
- applications and e2e tests.tests
- Unit tests app for thetns-core-modules
.tns-platform-declarations
- TypeScript definitions for Android and iOS native APIs.
Working with the repo is organized with npm scripts,
go and read through the scripts
section in the package.json.
Managing dependencies:
tns-core-modules
depends on:tns-platform-declarations
apps
depends on:tns-platform-declarations
tns-core-modules
e2e
depends on:tns-core-modules
tests
depends on:tns-platform-declarations
tns-core-modules
NOTE:
tns-core-modules
depends ontns-core-modules-widgets
, this dependency contains native code and is rarely modified so for now it remains outside this repo.
Clone (or fork/clone) the repo:
git clone https://github.com/NativeScript/NativeScript.git
Install devDependencies:
npm install
Run setup
script. This will npm link
the tns-core-modules
and tns-core-modules-declarations
dependencies inside the tests
and apps
projects.
npm run setup
The following commands are commonly used to compile the tns-core-modules
:
# Full tsc with type checking ~22.2s.
tsc
# Fast tsc ~11.2s.
tsc --skipLibCheck
# Fast watcher, ~4s. on save
tsc --skipLibCheck -w
The modules have typescript
as a devDependency so you should also be able to use the locally installed TypeScript compiler from node_modules:
./node_modules/.bin/tsc
You can compile the TypeScript files in the tns-core-modules
, tns-platform-declarations
, apps
and tests
at once at the root of the repo:
npm run tsc
The test app is an ordinary NativeScript app that logs the test results as it go. After the initial setup you can run the tests with:
# Make sure TypeScript is transpiled
tsc
# Run the tests app
tns run ios --path tests
tns run android --path tests
The test app is an ordinary NativeScript app that logs the test results as it go. After the initial setup you can run the tests with:
# Make sure TypeScript is transpiled
tsc
# Run the app
tns run ios --path apps
tns run android --path apps
The initial setup will npm-link
the tns-core-modules
globally. You can use it in any local project:
# Run once: Link tns-core-modules in your project
npm link tns-core-modules
# Run the app
tns run ios
tns run android
Note: You still have to rebuild the TypeScript if you have made changes in the code of the core-modules.
To update the platform declarations (the ios.d.ts-es) you can run:
npm install
npm run dev-declarations
This script will update the iOS declarations. Android tools are not integrated yet. The declarations are generated from the test app and will include the native code from tns-core-modules-widgets.
The following will build the API reference pages in bin/dist/apiref
:
npm run typedoc
If you want to improve on the documentation you can also build and start up dev web server:
npm run dev-typedoc
The terminal will point the address you can open in your web browser.