7.4.1 • Published 6 years ago

grunt-snakeskin v7.4.1

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

grunt-snakeskin

Using Snakeskin templates with Grunt.

NPM version Build Status NPM dependencies NPM devDependencies NPM peerDependencies

Install

npm install grunt-snakeskin --save-dev

Usage

Gruntfile.js

module.exports = function (grunt) {
  grunt.initConfig({
    snakeskin: {
      compile: {
        options: {
          exec: true,
          prettyPrint: true
        },

        files: {
          'html/': ['test/fixtures/*.ss']
        }
      }
    }
  });

  grunt.loadNpmTasks('grunt-snakeskin');
  grunt.registerTask('default', ['snakeskin']);
};

Options

adapter

Type: String

Name of the adaptor, for example:

  • ss2react compiles Snakeskin for React
  • ss2vue compiles Snakeskin for Vue2

adapterOptions

Type: Object

Options for the used adaptor.

exec

Type: Boolean

Default: false

If the parameter is set to true the template will be launched after compiling and the results of it work will be saved.

dext

Type: String

Default: '.html'

Extension of a file with result after template execution (using with exec).

tpl

Type: String

The name of the executable template (if is set exec), if the parameter is not specified, then uses the rule:

%fileName% || main || index || Object.keys().sort()[0];

data

Type: ?

Data for the executable template (if is set exec).

Speed up your build

Do not recompile templates with exec: true option:

grunt.initConfig({
  snakeskin: {
    render: {
      options: {
        exec: true,
      },

      files: {
        // Specify compiled template as source
        'html/': ['compiled/*.ss.js']
      },

      // Additional dependencies for grunt-newer
      deps: ['mycode.js']
    }
  }
});

Compile newer files only

npm install grunt-newer --save-dev

Specify grunt-newer override function in the following way:

var gruntCfg = {
  ...
  newer: {
    options: {
      override: function(detail, include) {
        // Check snakeskin include dependencies
        if (detail.task === 'snakeskin' && detail.target.includes('compile')) {
          // Build dest path from template source path
          var dst = SS_BUILD_DIR + '/' + path.basename(detail.path) + '.js';
          if (snakeskin.check(detail.path, dst)) {
            return include(true);
          }
        }

        // Check dependencies from target configuration
        // detail.config was requested: https://github.com/tschaub/grunt-newer/pull/115
        if (detail.config.deps) {
          for (var i = 0; i < detail.config.deps.length; i++) {
            var fn = detail.config.deps[i];
            var ts = fs.statSync(fn).mtime;
            var difference = detail.time - ts;
            if (difference < this.tolerance) {
              console.log(detail.path + ' has a newer dependency ' + fn);
              return include(true);
            }
          }
        }

        return include();
      }
    }
  },
  ...
};

License

The MIT License.

7.4.1

6 years ago

7.4.0

7 years ago

7.3.1

7 years ago

7.3.0

7 years ago

7.2.2

8 years ago

7.2.1

8 years ago

7.2.0

8 years ago

7.1.5

8 years ago

7.1.4

8 years ago

7.1.3

8 years ago

7.1.2

8 years ago

7.1.1

8 years ago

7.1.0

8 years ago

7.0.4

8 years ago

7.0.3

8 years ago

7.0.2

8 years ago

7.0.1

8 years ago

7.0.0

8 years ago

6.0.2

9 years ago

6.0.1

9 years ago

6.0.0

9 years ago

1.2.12

9 years ago

1.2.11

9 years ago

1.2.10

9 years ago

1.2.9

9 years ago

1.2.8

9 years ago

1.2.7

10 years ago

1.2.6

10 years ago

1.2.5

10 years ago

1.2.4

10 years ago

1.2.3

10 years ago

1.2.2

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago