Skip to content

meronmee/grunt-updateref

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

grunt-updateref

A Grunt plugin to update the references to external js/css files in html file. It is mostly used after grunt-contrib-concat plugin.

Getting Started

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-updateref --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-updateref');

The "updateref" task

Overview

In your project's Gruntfile, add a section named updateref to the data object passed into grunt.initConfig().

grunt.initConfig({
  updateref: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
});

Options

options.type

Type: (Necessary) String Default value: null

A string value that defines what type of reference should the task/target update in the src html file. It must be 'js' or 'css', and you need to specify it youself.

options.from

Type: (Necessary) String|Array of string Default value: null

It defines which reference will be updated/removed. If it is a string, it will be replaced by options.to, and if it is an array of string, only the first one will be replaced by options.to, and the others will be removed. It's default value is null, so you need to specify it youself.

options.to

Type: (Necessary) String Default value: ''

It defines what options.from will be replaced with. If options.prefix is defiend, it will be merged with options.prefix. You need to specify it youself.

options.prefix

Type: (Optional) String|Array Default value: ''

If it is a string, the final options.to will be options.to = options.prefix + options.to; If it is an array of string, it should contain two elements, and the final options.to will be options.to = options.to.replace(options.prefix[0], options.prefix[1]).

Usage Examples

Update reference to external css file

In this example, references contain strings in options.form in the src file 'test/src/formated.html' will be replaced by options.to: 'libs/libs.css(merged with options.prefix)', and the result will be saved to dest:'test/dist/formated.html'.

grunt.initConfig({
  updateref: {
    css: {
        options: {           
            type: 'css',
            prefix: ['dist/', ''],
            from: [
                'bootstrap.css', 
                'messenger.css'
            ],
            to: 'dist/libs/libs.css'
        },
        src: 'test/src/formated.html',
        dest: 'test/dist/formated.html'
      }//eof:updateref:css target
  }//eof:updateref task
});

The src file test/src/formated.html maybe like:

 ...
<meta charset="utf-8">
<link href="libs/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="libs/font-awesome/css/font-awesome.css" rel="stylesheet">
<link href="libs/messenger/css/messenger.css" rel="stylesheet">
...

and the dest file 'test/dist/formated.html' will like:

...
<meta charset="utf-8">
<link href="libs/libs.css" rel="stylesheet">
<link href="libs/font-awesome/css/font-awesome.css" rel="stylesheet">
...

Update reference to external js file

In this example, references contain strings in options.form in the src file 'test/src/formated.html' will be replaced by options.to: 'libs/libs.js(merged with options.prefix)', and the result will be saved to dest:'test/dist/formated.html'.

grunt.initConfig({
  updateref: {
    js: {
        options: {
            type: 'js',
            prefix: ['dist/', ''],
            from: [
                'jquery.js', 
                'bootstrap.js',
                'underscore.js'
            ],
            to: 'dist/libs/libs.js'
        },
        src: 'test/src/formated.html',
        dest: 'test/dist/formated.html'
    }//eof:updateref:js target
  }//eof:updateref task
});

The src file test/src/formated.html maybe like:

 ...
<script src='libs/jquery.js' type='text/javascript'></script>
<script src='libs/bootstrap/js/bootstrap.js' type='text/javascript'></script>
<script src='libs/underscore/underscore.js' type='text/javascript'></script>
<script src='js/utils.js' type='text/javascript'></script> 
...

and the dest file 'test/dist/formated.html' will like:

...
<script src='libs/libs.js' type='text/javascript'></script> 
<script src='js/utils.js' type='text/javascript'></script> 
...

Release History

  • 2013-12-26 v0.1.0

About

A Grunt plugin to update the references of external js/css files in html file. \nIt is mostly used after grunt-contrib-concat plugin.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published