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.
Download the package.json and gulpfile.js and put in the root directory of your app. Then run
npm install
cd /your/project/root
npm install nativescript-emulator-reload
mv node_modules/nativescript-emulator-reload/* .
rm -rf node_modules/nativescript-emulator-reload
npm install
gulp
or with a device flag:
gulp -d iPad-Retina
list valid devices with gulp help
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
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.)
Mocha is included for your testing pleasures.
Place your tests in /src/test
and run them with gulp test
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
}
}