| Server IP : 14.225.204.176 / Your IP : 216.73.216.252 Web Server : nginx/1.24.0 System : Linux nodejs-ybgk 6.8.0-40-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 5 10:34:03 UTC 2024 x86_64 User : root ( 0) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/php/harmoniegolfpark.com/html/ |
Upload File : |
module.exports = function (grunt) {
// require it at the top and pass in the grunt instance
require('time-grunt')(grunt);
// Load grunt tasks automatically
require('load-grunt-tasks')(grunt);
// Configurable paths
var config = {
dev: '',
dist: ''
};
// Define the configuration for all the tasks
grunt.initConfig({
// Project settings
config: config,
connect: {
server: {
options: {
port: 4000,
livereload: true,
hostname: '*',
base: {
path: '<%= config.dev %>',
options: {
index: 'index.html'
}
}
}
}
},
watch: {
options: {
livereload: {
port: 9000
}
},
html: {
files: ['<%= config.dev %>/**/*.html']
},
js: {
files: ['<%= config.dev %>/assets/js/**/*.js'],
options: {
livereload: {
port: 9000
}
}
},
gruntfile: {
files: ['Gruntfile.js']
},
sass: {
files: ['assets/sass/**/*.{scss,sass}'],
tasks: ['sass:dev', 'autoprefixer']
},
templates: {
files: ['<%= config.dev %>/**/**/*.tpl'],
tasks: ['jst']
}
},
useminPrepare: {
options: {
dest: '<%= config.dist %>'
},
html: '<%= config.dev %>/index.html'
},
usemin: {
options: {
assetsDirs: ['<%= config.dist %>']
},
html: ['<%= config.dist %>/{,*/}*.html'],
css: ['<%= config.dist %>/assets/styles/{,*/}*.css']
},
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: '<%= config.dev %>',
dest: '<%= config.dist %>',
src: [
'{,*/}*.html',
'assets/images/**/*.*',
'assets/img/**/*.*',
'assets/fonts/**/*.*',
'assets/font/**/*.*'
]
}]
}
},
// Empties folders to start fresh
clean: {
dist: {
files: [{
dot: true,
src: [
'.tmp',
'<%= config.dist %>/*',
'!<%= config.dist %>/.git*'
]
}]
}
},
// Task configuration.
jst: {
compile: {
options: {
prettify: false,
amdWrapper: false,
templateSettings: {
//interpolate : /\{\{(.+?)\}\}/g
},
processName: function (filename) {
//Shortens the file path for the template.
return filename.slice(filename.indexOf("tpl")).slice(0, -4);
}
},
files: {
'<%= config.dev %>/assets/js/templates.js': ['<%= config.dev %>/assets/js/**/*.tpl']
}
}
},
//assets/sass
sass: {
dev: {
files: [{
expand: true,
cwd: 'assets/sass',
src: ['style.scss', 'custom.scss'],
dest: 'assets/css/',
ext: '.css'
}],
tasks: ['autoprefixer']
},
dist: {
files: [{
expand: true,
cwd: '<%= config.dev %>/assets/sass',
src: ['style.scss', 'custom.scss'],
dest: '<%= config.dist %>/assets/css/',
ext: '.css'
}],
tasks: ['autoprefixer']
}
},
autoprefixer: {
single_file: {
options: {
// Target-specific options go here.
},
src: '<%= config.dev %>/assets/css/style.css',
dest: '<%= config.dev %>/assets/css/style.css'
},
},
imagemin: {
dist: {
files: [{
expand: true,
cwd: '<%= config.dev %>/images',
src: '{,*/}*.{gif,jpeg,jpg,png}',
dest: '<%= config.dist %>/images'
}]
}
}
, // Configuration for validating html-files
htmlhint: {
options: {
force: true,
'attr-lowercase': false, // set to false because of svg-attribute 'viewBox'
'attr-value-double-quotes': true,
'attr-value-not-empty': true,
'doctype-first': true,
'doctype-html5': true,
'id-class-value': true,
'id-unique': true,
'img-alt-require': true,
'spec-char-escape': true,
'src-not-empty': true,
'style-disabled': true,
'tag-pair': true,
'tag-self-close': true,
'tagname-lowercase': true
},
all: {
src: ['<%= config.dev %>/**/*.html']
}
}
, // Configuration for validating js-files
jshint: {
options: {
force: true,
'asi': false,
'bitwise': false,
'boss': true,
'browser': true,
'curly': false,
'eqeqeq': false,
'eqnull': true,
'evil': false,
'forin': true,
'immed': false,
'indent': 4,
'jquery': true,
'laxbreak': true,
'maxerr': 50,
'newcap': false,
'noarg': true,
'noempty': false,
'nonew': false,
'nomen': false,
'onevar': false,
'plusplus': false,
'regexp': false,
'undef': false,
'sub': true,
'strict': false,
'white': false
},
all: {
options: {
'-W015': true,
'-W089': true
},
src: [
'<%= config.dev %>/assets/js/main.js',
'<%= config.dev %>/assets/js/google-map.js',
'<%= config.dev %>/assets/js/form/**/*.js'
]
}
}
, // Configuration for SCSS linting
scsslint: {
allFiles: [
'<%= config.dev %>/assets/sass/style.scss}',
'<%= config.dev %>/assets/sass/partials/**/*.scss}',
],
options: {
maxBuffer: 300000,
colorizeOutput: true,
compact: true,
config: '.scss-lint.yml',
reporterOutput: 'scss-lint-report.xml',
force: true
}
}
// Accessibility Configuration
,
accessibility: {
options: {
accessibilityLevel: 'WCAG2A',
verbose: true
},
all: {
files: [{
cwd: 'build/',
dest: 'reports/',
expand: true,
ext: '-report.txt',
src: ['*.html']
}]
}
}
}); //initConfig
// HTMLHint task
grunt.registerTask('check-html', [
'htmlhint'
]);
// SCSSLint task
grunt.registerTask('check-scss', [
'scsslint'
]);
// JSHint task
grunt.registerTask('check-js', [
'jshint'
]);
// Accessibility task
grunt.registerTask('check-wcag2', [
'accessibility'
]);
grunt.registerTask("dev", [
'connect:server',
'watch'
]);
grunt.registerTask("build", [
'clean:dist',
'useminPrepare',
'concat',
'cssmin',
'uglify',
'copy:dist',
'sass:dist',
'usemin',
]);
};