GRUNT is the task runner we use for our static client file server.
Here is the list of the main grunt tasks available for the client project:
Tasks used to start server
"grunt" is the default task that is going to start your local server with minimal build and minimum watch for faster builds. The minimum build isn't going to handle some of the tasks that aren't needed in general like the rtl stylesheet creation (it won't generate T1-style-rtl.css), dividing the stylesheet into multiple ones for < IE10 support, etc... and the same logic is applied to the minimum watch. NOTE that the default grunt task is -very- slow and triggers a lot of heavy tasks on watch when something changes in the code. Check the "grunt start"/"grunt stop" alternative.
"grunt serve_rtl" is going to start your local server with a build and watch task that handles rtl content (stylesheets) unlike the minimum build done by the default "grunt" task.
"grunt serve_all" is going to start your local server with a full build and watch task that handles rtl content (stylesheets) AND < IE10 css split unlike the minimum build done by the default "grunt" task AND transpile ES6 js files when any of them are updated.
grunt start / grunt stop
Build whole dist and build folder (needed before a deploy)
"grunt dist" should be used before a deploy to a heroku app or S3, it takes care of generating the styleguide, the JS DOC, the transpile of ES6 components, minifying some content (js, css, ...), building the whole app inside the build folder and then generates the dist folder with minified css/js files, etc...
Transpile ES6 content with babel for crossbrowsing compatibility
"grunt transpile" will generate es2015/es6 content to es5 with babel, this task should be executed each time an update to an ES6 component is done.
Note this task is executed on watch when using "grunt serve_all" task
Build app.js with non-transpile ES6 content
"grunt unminified" same as previous but without the watch...
"grunt build_css_all_local" will build all stylesheets versions of the T1-style CSS(T1-style-core.css, T1-style-extended.css, T1-style-core-rtl.css, T1-style-extended-rtl.css, ...)
Update the Styleguide
"grunt styleguide" : as grunt does not watch by default the Styleguide files you may have to use this command line to update them.
"grunt compile_hbs_templates" : as grunt does not watch by default the hbs file changes you may have to use this command line to update them.
Run unit tests
"grunt run_mocha" : will run unit tests in a headless browser(requires you to start your server or test static files, so instead of localhost:5000/test/example.html => ./test/example.html => requires the page to have all correct relative paths), running "grunt start" will actually trigger those unit tests without stoping the server if they fail so that you can locally debug them in your browser.