Hi Stefan, 1) The cluttering is by design (of npm), so that every project has it's own dependencies (in the wanted version) and (by default) nothing is shared.
2) This should work if you need the disk space. Just copy the node_modules dir one directory up. Read more about the search algorithm here: http://nodejs.org/api/modules.html#modules_modules 3) Add a clean config (property) for the clean task [1] to your Gruntfile.js config object like that: clean: { demo: ["my/demo/path", "my/other/demo/path"] } See: https://github.com/qooxdoo/qooxdoo/blob/master/tool/grunt/data/Gruntfile.tmpl.js If you comment in this line ... // console.log(util.inspect(mergedConf, false, null)); ... you'll see that your demo config is properly merged with the global clean task config, which qooxdoo already provides: clean: { options: { force: true }, source: [ '<%= common.SOURCE_PATH %>/script' ], build: [ '<%= common.BUILD_PATH %>' ], api: [ '<%= common.ROOT %>/api' ], test: [ '<%= common.ROOT %>/test' ], inspector: [ '<%= common.ROOT %>/inspector' ], app: [ '<%= common.SOURCE_PATH %>/script', '<%= common.BUILD_PATH %>', '<%= common.ROOT %>/api', '<%= common.ROOT %>/test', '<%= common.ROOT %>/inspector' ], cache: [ '<%= common.CACHE_KEY.compile %>', '<%= common.CACHE_KEY.downloads %>' ], demo: ['my/demo/path', 'my/other/demo/path'] }, Now you can call your subtask: grunt clean:demo [1] https://github.com/gruntjs/grunt-contrib-clean Regards Richard ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel