Grunt module for Laravel.
- gruntfile import for workbench packages
GitHub: https://github.com/Vitre/grunt-laravel
NPM: https://www.npmjs.org/package/grunt-laravel
$ npm install grunt-laravel
[PACKAGE_ROOT]/Gruntfile.js
module.exports = function (grunt, config, pkg, options) {
config.sass = config.sass || {};
config.sass[pkg.name + "_dist"] = {
"options": {
"style": "compressed",
"compass": true
},
"files": [
{
"expand": true,
"cwd": pkg.resources + "/public/scss",
"src": ["*.scss"],
"dest": options.web + "/admin/@/css",
"ext": ".css"
}
]
};
config.watch = config.watch || {};
config.watch[pkg.name + "_sass"] = {
files: pkg.resources + "/public/scss/**/*.scss",
tasks: ["sass:" + pkg.name + "_dist"]
};
};
/*global module:false*/
// grunt-laravel import
var gruntLaravel = require('grunt-laravel');
module.exports = function (grunt) {
// Base configuration.
var config = {
// Metadata
pkg: grunt.file.readJSON('package.json'),
// [...] Your tasks
};
// Laravel packages import
gruntLaravel.importPackages(grunt, config, {
public: 'public',
workbench: 'workbench',
gruntFile: 'Gruntfile.js',
resources: 'src'
});
//---
grunt.initConfig(config);
// Modules
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');
// Tasks
grunt.registerTask('default', ['build', 'watch']);
grunt.registerTask('build', ['sass']);
};
Task stores some information into global grunt config variable. You can use it for custom task creation.
config.laravel: { packages: {}, dist_tasks: [], dev_tasks: [] }
config.laravel.dev_tasks.push('uglify:' + package.name + '_dev');
grunt.registerTask('build', [].concat(['sass'], config.laravel.dist_tasks, ['uglify']));
var gruntLaravel = require('grunt-laravel');
gruntLaravel.importPackages(grunt, config, [options])
Recursively imports packages Gruntfile.js
Type: String
Default: 'public'
Public folder path.
Type: String
Default: 'workbench'
Resources path.
Type: String
Default: 'Gruntfile.js'
Package Gruntfile filename.
Type: String
Default: 'src'
Package resources folder name.
Type: String
Package name.
Type: String
Package name in camelcase.
Type: String
Package name in underscore format.
Type: String
Package name in dashed format.
Type: String
Package public name.
Type: String
Package path.
Type: String
Package resources path.
Type: String
Package public path.
- Package object new names (
name_dashed
,name_underscore
) - Grunt config
laravel
registryconfig.laravel: { packages: {...}, dist_tasks: [...], dev_tasks: [...] }