You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							86 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
	
	
							86 lines
						
					
					
						
							2.9 KiB
						
					
					
				| 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]> |