diff options
author | Eran (ev672n), Vosk <ev672n@att.com> | 2018-08-07 14:15:05 +0300 |
---|---|---|
committer | Eran (ev672n), Vosk <ev672n@att.com> | 2018-08-07 14:15:05 +0300 |
commit | b9708a7c3cfaf5767992a2b15180e7b85c459242 (patch) | |
tree | 076e19ea52232232e9060a9d7e074947a4a49508 /Gruntfile.js | |
parent | cc32bd38d72e5c1c92048657083952d3e45c1819 (diff) |
adding the dcae dt code
Adding DCAE-dt code
Change-Id: Id6b779db9d24e10825fb97ad5fd46f41e65e6738
Issue-ID: SDC-1614
Signed-off-by: Eran (ev672n), Vosk <ev672n@att.com>
Diffstat (limited to 'Gruntfile.js')
-rw-r--r-- | Gruntfile.js | 644 |
1 files changed, 644 insertions, 0 deletions
diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..d9d90d8 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,644 @@ +// Generated on 2016-05-30 using generator-angular 0.15.1 +'use strict'; + +// # Globbing for performance reasons we're only matching one level down: +// 'test/spec/{,*/}*.js' use this if you want to recursively match all +// subfolders: 'test/spec/**/*.js' + +module.exports = function (grunt) { + + // Time how long tasks take. Can help when optimizing build times + require('time-grunt')(grunt); + + // Automatically load required Grunt tasks + require('jit-grunt')(grunt, { + useminPrepare: 'grunt-usemin', + ngtemplates: 'grunt-angular-templates', + cdnify: 'grunt-google-cdn', + ngconstant: 'grunt-ng-constant', + mkdir: 'grunt-mkdir', + preprocess: 'grunt-preprocess' + }); + + // Configurable paths for the application + var appConfig = { + app: require('./bower.json').appPath || 'app', + tmp: { + exploded: '.tmp', + imploded: '.tmp_imploded' + }, + dist: { + exploded: 'dist/exploded', + imploded: 'dist/imploded', + war: 'dist/war' + } + }; + + // Define the configuration for all the tasks + grunt.initConfig({ + + // Project settings + yeoman: appConfig, + + // Watches files for changes and runs tasks based on the changed files + watch: { + bower: { + files: ['bower.json'], + tasks: ['wiredep'] + }, + js: { + files: ['<%= yeoman.app %>/main/{,*/}*.js'], + tasks: [ + 'newer:jshint:all', 'newer:jscs:all' + ], + options: { + livereload: '<%= connect.options.livereload %>' + } + }, + injector: { + files: [ + 'app/styles/*.less', 'app/core/**/*.less', 'app/main/**/*.less' + ], + taskd: ['injector'] + }, + less: { + files: ['app/**/*.less'], + tasks: ['less:development'], + options: { + nospawn: true + } + }, + styles: { + files: ['<%= yeoman.app %>/main/{,*/}*.css'], + tasks: ['newer:copy:styles', 'postcss'] + }, + gruntfile: { + files: ['Gruntfile.js'] + }, + options: { + livereload: true + }, + livereload: { + options: { + livereload: '<%= connect.options.livereload %>' + }, + files: ['<%= yeoman.app %>/{,*/}*.html', '<%= yeoman.app %>/styles/app.css', '<%= yeoman.app %>/styles/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'] + } + }, + + /* + concat: { + options: { + stripBanners: true + }, + exploded: { + dest: '<%= yeoman.tmp.exploded %>' + } + }, + */ + + ngconstant: { + // Options for all targets + options: { + space: ' ', + wrap: '"use strict";\n\n {\%= __ngModule %}', + name: 'dcaeApp.env' + }, + // Environment targets + dev: { + options: { + dest: '<%= yeoman.app %>/app.env.js' + }, + constants: { + ENV: { + name: 'development', + apiBase: 'http://localhost:8080/', + host: 'http://localhost:8446/', + catalogImport: '/comp-fe/', + catalogPrefix: 'http://localhost:8446', + cookieUser: 'ym903w', + ruleEditorUrl: 'http://localhost:4200' + } + } + }, + exploded: { + options: { + dest: '<%= yeoman.app %>/app.env.js' + }, + constants: { + ENV: { + name: 'production', + apiBase: '/dcae/dcaeProxyOld/', + host: '/dcae/dcaeProxyOld/', + catalogImport: '/dcae/comp-fe/', + catalogPrefix: '/dcae/dcaeProxyOld/', + cookieUser: 'le056g', + ruleEditorUrl: '/rule_engine' + } + } + } + }, + + // The actual grunt server settings + connect: { + options: { + port: 9000, + // Change this to '0.0.0.0' to access the server from outside. + hostname: 'localhost', + livereload: true + }, + livereload: { + options: { + open: true, + middleware: function (connect) { + return [ + //connect.static('.tmp'), + connect().use('/bower_components', connect.static('./bower_components')), + connect().use('/app/styles', connect.static('./app/styles')), + connect.static(appConfig.app) + ]; + } + } + }, + test: { + options: { + port: 9001, + middleware: function (connect) { + return [ + connect.static('<%= yeoman.tmp.exploded %>'), + connect.static('test'), + connect().use('/bower_components', connect.static('./bower_components')), + connect.static(appConfig.app) + ]; + } + } + }, + exploded: { + options: { + open: true, + base: '<%= yeoman.dist.exploded %>' + } + } + }, + + // app.less contains all the less from all places, convert it to CSS + less: { + development: { + files: { + 'app/styles/app.css': 'app/styles/app.less' + } + }, + production: { + files: { + '<%= yeoman.tmp.exploded %>/styles/app.css': 'app/styles/app.less' + } + } + }, + + injector: { + options: {}, + // Inject all project less into app.less + less: { + options: { + transform: function (filePath) { + filePath = filePath.replace('/app/styles/', '../styles/'); + filePath = filePath.replace('/app/main/', '../main/'); + filePath = filePath.replace('/app/core/', '../core/'); + return '@import \'' + filePath + '\';'; + }, + starttag: '// injector:less', + endtag: '// endinjector:less' + }, + files: { + 'app/styles/app.less': ['app/styles/*.less', 'app/core/**/*.less', 'app/main/**/*.less', '!app/styles/app.less'] + } + } + }, + + // Make sure there are no obvious mistakes + jshint: { + options: { + jshintrc: '.jshintrc', + reporter: require('jshint-stylish') + }, + all: { + src: ['Gruntfile.js', '<%= yeoman.app %>/main/{,*/}*.js'] + }, + test: { + options: { + jshintrc: 'test/.jshintrc' + }, + src: ['test/spec/{,*/}*.js'] + } + }, + + // Make sure code styles are up to par + jscs: { + options: { + config: '.jscsrc', + verbose: true + }, + all: { + src: ['Gruntfile.js', '<%= yeoman.app %>/main/{,*/}*.js'] + }, + test: { + src: ['test/spec/{,*/}*.js'] + } + }, + + // Empties folders to start fresh + clean: { + exploded: { + files: [ + { + dot: true, + src: ['<%= yeoman.tmp.exploded %>', '<%= yeoman.dist.exploded %>/{,*/}*', '!<%= yeoman.dist.exploded %>/.git{,*/}*'] + } + ] + }, + imploded: { + files: [ + { + dot: true, + src: ['<%= yeoman.dist.imploded %>'] + } + ] + }, + html: { + files: [ + { + dot: true, + src: ['<%= yeoman.dist.exploded %>/index.html'] + } + ] + }, + server: '<%= yeoman.tmp.exploded %>' + }, + + // Add vendor prefixed styles + postcss: { + options: { + processors: [require('autoprefixer-core')({browsers: ['last 1 version']})] + }, + server: { + options: { + map: true + }, + files: [ + { + expand: true, + cwd: '<%= yeoman.tmp.exploded %>/styles/', + src: '{,*/}*.css', + dest: '<%= yeoman.tmp.exploded %>/styles/' + } + ] + }, + exploded: { + files: [ + { + expand: true, + cwd: '<%= yeoman.tmp.exploded %>/styles/', + src: '{,*/}*.css', + dest: '<%= yeoman.tmp.exploded %>/styles/' + } + ] + } + }, + + // Automatically inject Bower components into the app + wiredep: { + app: { + src: ['<%= yeoman.app %>/index.html'], + ignorePath: /\.\.\// + } + }, + + // Renames files for browser caching purposes + filerev: { + exploded: { + src: ['<%= yeoman.dist.exploded %>/scripts/{,*/}*.js', '<%= yeoman.dist.exploded %>/styles/{,*/}*.css', '<%= yeoman.dist.exploded %>/styles/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', '<%= yeoman.dist.exploded %>/styles/fonts/*'] + } + }, + + // Reads HTML for usemin blocks to enable smart builds that automatically + // concat, minify and revision files. Creates configurations in memory so + // additional tasks can operate on them + useminPrepare: { + html: '<%= yeoman.app %>/index.html', + options: { + dest: '<%= yeoman.dist.exploded %>', + flow: { + html: { + steps: { + js: [ + 'concat', 'uglifyjs' + ], + css: ['cssmin'] + }, + post: {} + } + } + } + }, + + // Performs rewrites based on filerev and the useminPrepare configuration + usemin: { + html: ['<%= yeoman.dist.exploded %>/{,*/}*.html'], + css: ['<%= yeoman.dist.exploded %>/styles/{,*/}*.css'], + js: ['<%= yeoman.dist.exploded %>/scripts/{,*/}*.js'], + options: { + assetsDirs: [ + '<%= yeoman.dist.exploded %>', '<%= yeoman.dist.exploded %>/styles/images', '<%= yeoman.dist.exploded %>/styles' + ], + patterns: { + js: [ + [/(images\/[^''""]*\.(png|jpg|jpeg|gif|webp|svg))/g, 'Replacing references to images'] + ] + } + } + }, + + imagemin: { + exploded: { + files: [ + { + expand: true, + cwd: '<%= yeoman.app %>/styles/images', + src: '**/*.{png,jpg,jpeg,gif}', + dest: '<%= yeoman.dist.exploded %>/styles/images' + } + ] + } + }, + + svgmin: { + exploded: { + files: [ + { + expand: true, + cwd: '<%= yeoman.app %>/styles/images', + src: '{,*/}*.svg', + dest: '<%= yeoman.dist.exploded %>/styles/images' + } + ] + } + }, + + htmlmin: { + exploded: { + options: { + collapseWhitespace: true, + conservativeCollapse: true, + collapseBooleanAttributes: true, + removeCommentsFromCDATA: true + }, + files: [ + { + expand: true, + cwd: '<%= yeoman.dist.exploded %>', + src: ['*.html'], + dest: '<%= yeoman.dist.exploded %>' + } + ] + } + }, + + ngtemplates: { + exploded: { + options: { + module: 'dcaeApp', + htmlmin: '<%= htmlmin.exploded.options %>', + usemin: 'scripts/scripts.js' + }, + cwd: '<%= yeoman.app %>', + src: [ + 'main/**/*.html', 'core/**/*.html', 'comp-fe/**/*.html' + ], + dest: '<%= yeoman.tmp.exploded %>/templateCache.js' + } + }, + + // ng-annotate tries to make the code safe for minification automatically by + // using the Angular long form for dependency injection. + ngAnnotate: { + exploded: { + files: [ + { + expand: true, + cwd: '<%= yeoman.tmp.exploded %>/concat/scripts', + src: '*.js', + dest: '<%= yeoman.tmp.exploded %>/concat/scripts' + } + ] + } + }, + + // Replace Google CDN references + cdnify: { + exploded: { + html: ['<%= yeoman.dist.exploded %>/*.html'] + } + }, + + // Copies remaining files to places other tasks can use + copy: { + exploded: { + files: [ + { + expand: true, + dot: true, + cwd: '<%= yeoman.app %>', + dest: '<%= yeoman.dist.exploded %>', + src: ['*.{ico,png,txt}', '*.html', 'styles/images/{,*/}*.{webp}', 'styles/fonts/{,*/}*.*'] + }, { + expand: true, + cwd: '<%= yeoman.tmp.exploded %>/images', + dest: '<%= yeoman.dist.exploded %>/styles/images', + src: ['generated/*'] + }, { + expand: true, + cwd: 'bower_components/bootstrap/dist', + src: 'fonts/*', + dest: '<%= yeoman.dist.exploded %>' + }, { + expand: true, + cwd: '<%= yeoman.app %>', + src: ['WEB-INF/*'], + dest: '<%= yeoman.dist.exploded %>/' + }, { + expand: true, + cwd: '<%= yeoman.app %>', + src: ['dcae.xml'], + dest: '<%= yeoman.dist.exploded %>/' + } + ] + }, + styles: { + expand: true, + cwd: '<%= yeoman.app %>/styles', + dest: '<%= yeoman.tmp.exploded %>/styles/', + src: '{,*/}*.css' + }, + tmpImploded: { + expand: true, + cwd: '<%= yeoman.dist.exploded %>', + dest: '<%= yeoman.tmp.imploded %>', + src: '**/*' + }, + copyComposition: { + expand: true, + cwd: '<%= yeoman.app %>', + dest: '<%= yeoman.dist.imploded %>', + src: 'comp-fe/**/*' + }, + copyProject: { + expand: true, + cwd: '<%= yeoman.app %>', + dest: '<%= yeoman.dist.exploded %>', + src: ['**/*'] + }, + copyIndex: { + expand: true, + cwd: '<%= yeoman.app %>/prodHtml', + dest: '<%= yeoman.dist.exploded %>', + src: ['**/*'] + }, + copyComposition2: { + expand: true, + cwd: '<%= yeoman.app %>', + dest: '<%= yeoman.dist.exploded %>', + src: 'comp-fe/**/*' + }, + imploded: { + expand: true, + cwd: '<%= yeoman.dist.exploded %>', + dest: '<%= yeoman.dist.imploded %>', + src: ['dcae.xml', 'WEB-INF/**'] + } + }, + + // Run some tasks in parallel to speed up the build process + concurrent: { + server: [ + 'less:development', 'copy:styles' + ], + test: ['copy:styles'], + exploded: [ + 'less:production', 'copy:styles', 'imagemin', 'svgmin' + ], + style: ['less:production'] + }, + + mkdir: { + all: { + options: { + create: ['<%= yeoman.dist.exploded %>/WEB-INF'] + } + }, + dist: { + options: { + create: ['<%= yeoman.dist %>'] + } + }, + imploded: { + options: { + create: ['<%= yeoman.dist.imploded %>', '<%= yeoman.tmp.imploded %>'] + } + } + }, + + preprocess: { + options: { + inline: true, + context: { + DEBUG: false + } + }, + /*html : { + src : [ + '<%= yeoman.dist %>/index.html', + '<%= yeoman.dist %>/views/*.html' + ] + },*/ + js: { + src: '<%= yeoman.tmp.exploded %>/concat/scripts/*.js' + } + } + + }); + + grunt.registerTask('serve', 'Compile then start a connect web server', function (target) { + if (target === 'dist') { + return grunt + .task + .run(['build', 'connect:exploded:keepalive']); + } + + grunt + .task + .run([ + 'clean:server', // Delete .tmp folder + 'ngconstant:dev', // Configure constants + 'wiredep', // Automatically inject Bower components into the app + 'injector', // Inject the less files to app.less + 'concurrent:server', // Run some tasks in parallel to speed up the build process, need to see what the task run. + 'postcss:server', // Add vendor prefixed styles + 'connect:livereload', + 'watch' + ]); + }); + + grunt.registerTask('server', 'DEPRECATED TASK. Use the "serve" task instead', function (target) { + grunt + .log + .warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); + grunt + .task + .run(['serve:' + target]); + }); + + grunt.registerTask('test', ['clean:server', 'wiredep', 'concurrent:test', 'postcss', 'connect:test']); + + grunt.registerTask('build', [ + 'clean:exploded', + 'ngconstant:exploded', + 'wiredep', + 'injector', + 'concurrent:exploded', + 'useminPrepare', + 'postcss', + 'ngtemplates', + 'concat', + 'preprocess:js', + 'ngAnnotate', + //'mkdir', + 'copy:exploded', + //'cdnify', + 'cssmin', + 'uglify', + 'mkdir:imploded', + 'clean:imploded', + 'copy:tmpImploded', // Copy the files before changing their names + 'copy:imploded', // Copy the WEB-INF folder and dcae.xml + 'filerev', // This will change the name of the files for caching. + 'usemin', + 'copy:copyComposition' + //'htmlmin' + ]); + + grunt.registerTask('build2', [ + 'clean:exploded', + 'ngconstant:exploded', + 'wiredep', + 'injector', + 'concurrent:style', + 'postcss', + // 'useminPrepare', 'postcss', 'ngtemplates', 'concat', 'preprocess:js', + // 'ngAnnotate', 'mkdir', + 'copy:copyProject', + 'clean:html', + 'copy:copyIndex' + ]); + + grunt.registerTask('default', ['newer:jshint', 'newer:jscs', 'test', 'build']); +}; |