Viewing File: /home/fshjisk/myqueen/wp-content/plugins/user-registration-woocommerce/Gruntfile.js

/* jshint node:true */
module.exports = function (grunt) {
  "use strict";

  grunt.initConfig({
    // Setting folder templates.
    dirs: {
      js: "assets/js",
      css: "assets/css",
    },

    // JavaScript linting with JSHint.
    jshint: {
      options: {
        jshintrc: ".jshintrc",
      },
      all: [
        "Gruntfile.js",
        "<%= dirs.js %>/admin/*.js",
        "!<%= dirs.js %>/admin/*.min.js",
        "<%= dirs.js %>/frontend/*.js",
        "!<%= dirs.js %>/frontend/*.min.js",
      ],
    },

    // Sass linting with Stylelint.
    stylelint: {
      options: {
        stylelintrc: ".stylelintrc",
      },
      all: ["<%= dirs.css %>/*.scss"],
    },

    // Minify all .js files.
    uglify: {
      options: {
        ie8: true,
        parse: {
          strict: false,
        },
        output: {
          comments: /@license|@preserve|^!/,
        },
      },
      admin: {
        files: [
          {
            expand: true,
            cwd: "<%= dirs.js %>/admin/",
            src: ["*.js", "!*.min.js"],
            dest: "<%= dirs.js %>/admin/",
            ext: ".min.js",
          },
        ],
      },
      frontend: {
        files: [
          {
            expand: true,
            cwd: "<%= dirs.js %>/frontend/",
            src: ["*.js", "!*.min.js"],
            dest: "<%= dirs.js %>/frontend/",
            ext: ".min.js",
          },
        ],
      },
      vendor: {
        files: {
          "<%= dirs.js %>/jquery-blockui/jquery.jquery.blockUI.min.js": [
            "<%= dirs.js %>/jquery-blockui/jquery.jquery.blockUI.js",
          ],
          "<%= dirs.js %>/jquery-tiptip/jquery.tipTip.min.js": [
            "<%= dirs.js %>/jquery-tiptip/jquery.tipTip.js",
          ],
          "<%= dirs.js %>/select2/select2.min.js": [
            "<%= dirs.js %>/select2/select2.js",
          ],
        },
      },
    },

    // Compile all .scss files.
    sass: {
      options: {
        sourcemap: "none",
        implementation: require("node-sass"),
      },
      compile: {
        files: [
          {
            expand: true,
            cwd: "<%= dirs.css %>/",
            src: ["*.scss"],
            dest: "<%= dirs.css %>/",
            ext: ".css",
          },
        ],
      },
    },

    // Generate all RTL .css files
    rtlcss: {
      generate: {
        expand: true,
        cwd: "<%= dirs.css %>",
        src: ["*.css", "!select2.css", "!*-rtl.css"],
        dest: "<%= dirs.css %>/",
        ext: "-rtl.css",
      },
    },

    // Minify all .css files.
    cssmin: {
      minify: {
        expand: true,
        cwd: "<%= dirs.css %>/",
        src: ["*.css"],
        dest: "<%= dirs.css %>/",
        ext: ".css",
      },
    },

    // Watch changes for assets.
    watch: {
      css: {
        files: ["<%= dirs.css %>/*.scss"],
        tasks: ["sass", "cssmin"],
      },
      js: {
        files: [
          "<%= dirs.js %>/admin/*js",
          "<%= dirs.js %>/frontend/*js",
          "!<%= dirs.js %>/admin/*.min.js",
          "!<%= dirs.js %>/frontend/*.min.js",
        ],
        tasks: ["jshint", "uglify"],
      },
    },

    // PHP Code Sniffer.
    phpcs: {
      options: {
        bin: "vendor/bin/phpcs",
        standard: "./phpcs.ruleset.xml",
      },
      dist: {
        src: [
          "**/*.php", // Include all files
          "!node_modules/**", // Exclude node_modules/
          "!vendor/**", // Exclude vendor/
        ],
      },
    },

    // Autoprefixer.
    postcss: {
      options: {
        processors: [
          require("autoprefixer")({
            browsers: ["> 0.1%", "ie 8", "ie 9"],
          }),
        ],
      },
      dist: {
        src: ["<%= dirs.css %>/*.css"],
      },
    },

    // Compress files and folders.
    compress: {
      options: {
        archive: "user-registration-woocommerce.zip",
      },
      files: {
        src: [
          "**",
          "!.*",
          "!*.md",
          "!*.zip",
          "!.*/**",
          "!sass/**",
          "!vendor/**",
          "!Gruntfile.js",
          "!package.json",
          "!composer.json",
          "!composer.lock",
          "!node_modules/**",
          "!phpcs.ruleset.xml",
        ],
        dest: "user-registration-woocommerce",
        expand: true,
      },
    },
  });

  // Load NPM tasks to be used here
  grunt.loadNpmTasks("grunt-sass");
  grunt.loadNpmTasks("grunt-phpcs");
  grunt.loadNpmTasks("grunt-rtlcss");
  grunt.loadNpmTasks("grunt-postcss");
  grunt.loadNpmTasks("grunt-stylelint");
  grunt.loadNpmTasks("grunt-contrib-jshint");
  grunt.loadNpmTasks("grunt-contrib-uglify");
  grunt.loadNpmTasks("grunt-contrib-cssmin");
  grunt.loadNpmTasks("grunt-contrib-watch");
  grunt.loadNpmTasks("grunt-contrib-compress");

  // Register tasks
  grunt.registerTask("default", ["uglify"]);

  grunt.registerTask("js", ["jshint", "uglify:admin", "uglify:frontend"]);

  grunt.registerTask("css", [
    "sass",
    // 'rtlcss',
    "postcss",
    "cssmin",
  ]);

  grunt.registerTask("dev", ["default"]);

  grunt.registerTask("zip", ["dev", "compress"]);
};
Back to Directory File Manager