Legacy Ember UI - Development
This applies for the legacy Ember Neos UI. Learn more about our current ReactJS UI in the docs. The EmberUI has been partially removed since Neos 5.0 and the last pieces (Notification API and Translation API) will follow soon!
Setting up your machine for Neos UI development
For user interface development of Neos we utilize grunt and some other tools.
Setting up your machine could be done by using the installation script that can
be found in
Neos.Neos/Scripts/install-dev-tools.sh. If you want to do a manual
installation you will need to install the following software:
sudo npm install -g grunt-cli)
sudo npm install -g requirejs)
sudo npm install -g bower)
sudo gem install bundler)
sass & compass (
sudo gem install sass compass)
Make sure you call
bundle install --binstubs --path bundle
bower install before running the grunt tasks.
Grunt tasks types
We have different types of grunt tasks. All tasks have different purposes:
Those commands are meant for compiling resources that are used in development context. This could for example be a packed file containing jquery and related plugins which are loaded in development context using requirejs.
Those commands are used for watching file changes. When a change is detected the compile commands for development are executed. Use those commands during your daily work for a fast development experience.
Used for running automated tests. Those tests use phantomjs which is automatically installed by calling
npm install. Phantomjs needs some other dependencies though, check
Neos.Neos/Scripts/install-phantomjs-dependencies.shfor ubuntu based systems.
Available grunt tasks
Compiles and concatenates the css sources to
Renders the documentation. This task depends on a local installation of Omnigraffle.
Compiles and concatenates the scss sources to css.
Watches changes to the scss files and runs
compile-cssif a change is detected.
Watches changes to the rst files of the documentation, and executes a compilation of all restructured text sources to html. This task depends on a local sphinx install but does not require Omnigraffle.
All of the above.