Files
opensourcepos/Gruntfile.js

204 lines
4.3 KiB
JavaScript

module.exports = function(grunt) {
dist_files = [
{
src: [
'public/**',
'vendor/**',
'app/**',
'!/tests',
'!grunt045**',
'!/public/images/menubar/png/',
'!/public/dist/bootswatch/',
'/public/dist/bootswatch/*/*.css',
'!/public/dist/bootswatch-5/',
'/public/dist/bootswatch-5/*/*.css',
'app/Database/**',
'*.txt',
'*.md',
'LICENSE',
'docker*',
'docker/**',
'Dockerfile',
'**/.htaccess',
'*.csv'
]
}
];
ospos_css = ['public/css/*.css',
'!public/css/login.css',
'!public/css/login.min.css',
'!public/css/invoice_email.css',
'!public/css/barcode_font.css',
'!public/css/darkly.css'];
ospos_js = ['public/dist/bootstrap/js/*.min.js',
'public/js/jquery*',
'public/js/*.js'];
ospos_min_css = ['public/dist/jquery-ui/*.css',
'public/dist/*.css'];
ospos_min_js = ['public/dist/*min.js'];
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
wiredep: {
task: {
ignorePath: '../../../public/',
src: ['app/Views/partial/header.php']
}
},
injector: {
options: {
lineEnding: '\n',
ignorePath: 'public/',
addRootSlash: false,
},
css_js_header: {
files: {
'app/Views/partial/header.php': [ospos_css, ospos_js]
},
},
mincss_header: {
options: {
starttag: '<!-- mincss injector:css -->',
},
files: {
'app/Views/partial/header.php': [ospos_min_css]
},
},
minjs: {
options: {
starttag: '<!-- minjs injector:js -->',
},
files: {
'app/Views/partial/header.php': [ospos_min_js]
},
},
css_login: {
files: {
'app/Views/login.php': ['public/css/login.min.css']
},
},
},
bowercopy: {
options: {
report: false
},
targetdistjqueryui: {
options: {
srcPrefix: 'public/resources/jquery-ui',
destPrefix: 'public/dist'
},
files: {
'jquery-ui': 'themes/base/jquery-ui.min.css'
}
},
targetdistbootswatch: {
options: {
srcPrefix: 'public/resources/bootswatch',
destPrefix: 'public/dist'
},
files: {
bootswatch: '*/'
}
},
targetlicense: {
options: {
srcPrefix: './'
},
files: {
'public/license': 'LICENSE'
}
}
},
cssmin: {
target: {
files: {
'public/dist/opensourcepos.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/login.min.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css'],
'public/css/login.min.css': ['public/css/login.css']
}
}
},
concat: {
js: {
options: {
separator: '\n'
},
files: {
'tmp/opensourcepos.js': ['public/dist/jquery/jquery.js', 'tmp/opensourcepos_bower.js', 'public/js/*.js']
}
},
sql: {
options: {
banner: '-- >> This file is autogenerated from tables.sql and constraints.sql. Do not modify directly << --'
},
files: {
'app/Database/database.sql': ['app/Database/tables.sql', 'app/Database/constraints.sql'],
'app/Database/migrate_phppos_dist.sql': ['app/Database/tables.sql', 'app/Database/Migrations/sqlscripts/pre-3.0.2/phppos_migrate.sql', 'database/constraints.sql']
}
}
},
uglify: {
options: {
banner: '/*! opensourcepos <%= grunt.template.today("dd-mm-yyyy") %> */\n'
},
dist: {
files: {
'public/dist/opensourcepos.min.js': ['tmp/opensourcepos.js']
}
}
},
jshint: {
files: ['public/js/imgpreview.full.jquery.js',
'public/js/manage_tables.js',
'public/js/nominatim.autocomplete.js'],
options: {
esversion: 6,
globals: {
jQuery: true,
console: true,
module: true,
document: true
}
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint']
},
compress: {
tar: {
options: {
mode: 'tar',
archive: 'dist/opensourcepos.tgz',
level: 2,
},
files: dist_files
},
zip: {
options: {
mode: 'zip',
archive: 'dist/opensourcepos.zip',
},
files: dist_files
}
}
});
require('load-grunt-tasks')(grunt);
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.registerTask('task1', ['wiredep']);
grunt.registerTask('task3', ['bowercopy']);
grunt.registerTask('task5', ['concat','uglify','cssmin','injector','jshint']);
grunt.registerTask('task7', ['compress']);
grunt.registerTask('watch', ['watch']);
};