So today I needed some features in NativeScript that had been committed to their repo, but had not been released via npm yet. I thought I’d be smart, clone the repo and just build it myself. It wasn’t quite that simple, so here is the path I took to get it all working on OSX.
WARNING: Bleeding Edge Repos can break things.
Clone the repo
git clone https://github.com/NativeScript/nativescript-cli.git
cd nativescript-cli
Grab the submodule(s)
git submodule init
git submodule update
If this were just a JS module, you could simply use npm to install it. But its not, this module contains TypeScript. Ah, a Gruntfile exists in the repo!
Install Grunt and its requirements (I already have the grunt-cli installed globally)
npm install grunt
npm install grunt-ts
npm install grunt-contrib-clean
npm install grunt-contrib-copy
npm install grunt-contrib-watch
npm install grunt-shell
Now if we run grunt, we will see that a JS and a MAP file is created for each TS file within the project.
grunt
To package up a zip (ex: nativescript-0.9.4-non-ci.tgz) you can install from, you can use
grunt pack
To install from that zip
sudo npm install -g nativescript-0.9.4-non-ci.tgz
A great one, Stephen, congrats!
Just wanted to note an easer alternative for the installation of the dependent npm modules – `npm install`. Once you have grunt-cli installed globally, `npm install` would read the dependent packages from the package.config file and install them. Thus, that would eliminate the change of the sequence if the dependencies change.
Cheers,
Erjan Gavalji
Telerik