====== Riot.js ====== You can learn more about the //fantastic// Riot.js minimalistic, yet very powerful javascript MV* framework on [[https://muut.com/|their website]]. We'll start a Riot.js project, once we have Node.js and NPM installed, as well as add a few dev tools that will ease our development efforts. Please note that we'll always use npm to **locally** install all packages, referencing some as "dev-only" so that our package list will include everything that is effectively require for the project production and development usage. **NOTE for VirtualBox VMs shared folders:** If you are using a VirtualBox shared folder for your dev files, then you have to “prepare” it for correct symlinks operations from your host computer command line: See [[:vms:webdev:apache#create_the_shared_www_folders|Create VirtualBox shared folder]] and [[vms:python:django#virtualbox_symlinks_inside_shared_folders|Virtualbox: Symlinks inside shared folders]] in this wiki. Let's init our project > mkdir /path/to/dev/project > cd /apth/to/dev/project > npm init > npm install riot --save > npm install babel --save-dev This should be the minimum required to allow server side compilation of your tags (that's why babel is required on the dev platform). Some npm packages of interest for a dev environment: > npm install browser-sync --save-dev > npm install parallelshell --save-dev > npm install rimraf --save-dev Basicaly what this will do is write to the //**package.json**// file at the root of your project, also adding a //**node_modules**// directory there. It translates to the following: > nano package.json . . "dependencies": { "riot": "^2.2.4" }, "devDependencies": { "babel": "^5.8.23" } . . Once you share your code with others, they'll simply have to issue: > npm install To make sure all required Node Packages are available to the project. Refer to [[https://drublic.de/blog/npm-builds/|this great article by Hans Christian Reinl]] for a good starting reference about a setup a modern dev environment using npm.