Awesome
nativescript-emulator-reload
This small gulp script will monitor the source files of a NativeScript project and when a file is changed it'll rebuild and reload the emulator. Will also use Babel to compile your ES6+ JS into ES5 if you want it to.
Currently only supports iOS emulators.
Install
Either download from Github:
Download the package.json and gulpfile.js and put in the root directory of your app. Then run
npm install
Or install from NPM:
cd /your/project/root
npm install nativescript-emulator-reload
mv node_modules/nativescript-emulator-reload/* .
rm -rf node_modules/nativescript-emulator-reload
npm install
Run
gulp
or with a device flag:
gulp -d iPad-Retina
list valid devices with gulp help
ECMAScript 6 version.
If you want to use ECMAScript 6 there's an gulpfile (gulpfile.es6.js
) which will use Babel to turn your ES6+ code into ES5 code.
To use this file, rename gulpfile.js
to gulpfile.es5.js
(or really to anything) and rename gulpfile.es6.js
to gulpfile.js
.
gulp watch
The ES6 Gulpscript is opinionated
You most probably need to edit the settings in the gulpfile.
The default settings assumes the following file structure:
/app
/src
/shared
/test
/views
/tns_modules
/App_Resources
/...
Where the content of src
will be moved to /app
when compiled. Creating a file structure like:
/app
/src
/shared
/test
/views
/tns_modules
/App_Resources
/...
/shared
/test
/views
Where the app/{shared,test,views}
are the compiled version of app/src/{shared,test,views}
. This way only the ES6 files will be compiled (and not things like tns_modules
, anything in node_modules
if you install npm packages, etc.)
Testing with Mocha
Mocha is included for your testing pleasures.
Place your tests in /src/test
and run them with gulp test
Linting with eslint
eslint is included for your linting pleasures.
Lint the code in your app/src
folder by running gulp lint
.
If you're using ES6 you most probably want these settings in your .eslintrc
in the root directory of your project. es6: true
will enable all ES6 features but modules which is enabled by "ecmaFeatures": { modules: true }
. Read more about configuring eslint.
{
"env": {
"es6": true
},
"ecmaFeatures": {
modules: true
}
}