grunt-laravel

0.0.3 • Public • Published

grunt-laravel Monthly downloads

Grunt module for Laravel.

NPM

Features

  • gruntfile import for workbench packages

Links

GitHub: https://github.com/Vitre/grunt-laravel

NPM: https://www.npmjs.org/package/grunt-laravel

Install

$ npm install grunt-laravel

Package gruntfile

[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"]
    };
 
};

Gruntfile implementation

/*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']);
 
};
 

Gruntfile config registry

Task stores some information into global grunt config variable. You can use it for custom task creation.

config.laravel: { packages: {}, dist_tasks: [], dev_tasks: [] }

Task creation example

Package gruntfile

config.laravel.dev_tasks.push('uglify:' + package.name + '_dev');

Global gruntfile

grunt.registerTask('build', [].concat(['sass'], config.laravel.dist_tasks, ['uglify']));

API

Importing

var gruntLaravel = require('grunt-laravel');

Methods

gruntLaravel.importPackages(grunt, config, [options])

Recursively imports packages Gruntfile.js

Options

public

Type: String Default: 'public'

Public folder path.

workbench

Type: String Default: 'workbench'

Resources path.

gruntFile

Type: String Default: 'Gruntfile.js'

Package Gruntfile filename.

resources

Type: String Default: 'src'

Package resources folder name.

Package object

Properties

name

Type: String

Package name.

name_camelcase

Type: String

Package name in camelcase.

name_underscore

Type: String

Package name in underscore format.

name_dashed

Type: String

Package name in dashed format.

name_public

Type: String

Package public name.

path

Type: String

Package path.

resources

Type: String

Package resources path.

public

Type: String

Package public path.

Release 0.0.2

  • Package object new names (name_dashed, name_underscore)
  • Grunt config laravel registry config.laravel: { packages: {...}, dist_tasks: [...], dev_tasks: [...] }

Readme

Keywords

Package Sidebar

Install

npm i grunt-laravel

Weekly Downloads

0

Version

0.0.3

License

none

Last publish

Collaborators

  • vitre