2.6 KiB
Development Workflow
The repository contains several packages and apps:
tns-platform-declarations
- Android and iOS native APIs supported in JavaScripttns-core-modules
- Core ui, io and sensor modulesapps
- UI app used for manual testing and automationtests
- Unit tests for thetns-core-modules
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
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.
Manage Dependencies
Get devDependencies by:
npm install
Setting up the environment for work we use npm link
.
The dependencies in the repo are npm link
-ed (~synlinked) using the following script:
npm run setup
TypeScript
The following commands are commonly used to compile the tns-core-modules
:
# Full tsc with type checking ~22.2s.
tsc -p tns-core-modules
# Fast tsc ~11.2s.
tsc -p tns-core-modules --skipLibCheck
# Fast watcher, ~4s. on save
tsc -p tns-core-modules --skipLibCheck -w
Compiling the modules, tests and apps has also npm scripts:
npm run dev-tsc-tns-core-modules
npm run dev-tsc-tests
npm run dev-tsc-apps
The modules have typescript
as devDependency so you should also be able to use locally installed TypeScript compiler from node_modules:
./node_modules/.bin/tsc -p tns-core-modules
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
Tests
The test app is an ordinary NativeScript app that logs the test results as it go. To run the test app:
# Once after npm install
npm run setup
# After changes in the modules
tsc -p tns-core-modules
# After changes in the tests
tsc -p tests
tns run ios --path tests
tns run android --path tests
Platform declarations
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.