require! <[./build fs ./config]> module.exports = (grunt)-> grunt.loadNpmTasks \grunt-contrib-clean grunt.loadNpmTasks \grunt-contrib-copy grunt.loadNpmTasks \grunt-contrib-uglify grunt.loadNpmTasks \grunt-contrib-watch grunt.loadNpmTasks \grunt-livescript grunt.loadNpmTasks \grunt-karma grunt.initConfig do pkg: grunt.file.readJSON './package.json' uglify: build: files: '<%=grunt.option("path")%>.min.js': '<%=grunt.option("path")%>.js' options: mangle: {+keep_fnames} compress: {+keep_fnames, +pure_getters} output: {max_line_len: 32000} ie8: on sourceMap: on banner: config.banner livescript: src: files: './tests/helpers.js': './tests/helpers/*' './tests/tests.js': './tests/tests/*' './tests/library.js': './tests/library/*' './tests/es.js': './tests/tests/es*' './tests/experimental.js': './tests/experimental/*' './build/index.js': './build/build.ls*' clean: <[./library]> copy: lib: files: * expand: on cwd: './' src: <[es5/** es6/** es7/** stage/** web/** core/** fn/** index.js shim.js]> dest: './library/' * expand: on cwd: './' src: <[modules/*]> dest: './library/' filter: \isFile * expand: on cwd: './modules/library/' src: '*' dest: './library/modules/' watch: core: files: './modules/*' tasks: \default tests: files: './tests/tests/*' tasks: \livescript karma: 'options': configFile: './tests/karma.conf.js' browsers: <[PhantomJS]> singleRun: on 'default': {} 'library': files: <[client/library.js tests/helpers.js tests/library.js]>map -> src: it grunt.registerTask \build (options)-> done = @async! build { modules: (options || 'es5,es6,es7,js,web,core')split \, blacklist: (grunt.option(\blacklist) || '')split \, library: grunt.option(\library) in <[yes on true]> umd: grunt.option(\umd) not in <[no off false]> } .then !-> grunt.option(\path) || grunt.option(\path, './custom') fs.writeFile grunt.option(\path) + '.js', it, done .catch !-> console.error it process.exit 1 grunt.registerTask \client -> grunt.option \library '' grunt.option \path './client/core' grunt.task.run <[build:es5,es6,es7,js,web,core uglify]> grunt.registerTask \library -> grunt.option \library 'true' grunt.option \path './client/library' grunt.task.run <[build:es5,es6,es7,js,web,core uglify]> grunt.registerTask \shim -> grunt.option \library '' grunt.option \path './client/shim' grunt.task.run <[build:es5,es6,es7,js,web uglify]> grunt.registerTask \e -> grunt.option \library ''> grunt.option \path './client/core' grunt.task.run <[build:es5,es6,es7,js,web,core,exp uglify]> grunt.registerTask \default <[clean copy client library shim]>