Skip to content

Grunt task generating manifests with fingerprinted assets to be injected and cached via localstorage

License

Notifications You must be signed in to change notification settings

dactylographsy/grunt-dactylographsy

Repository files navigation

grunt-dactylographsy

Build Status ♦️ Dependency Status ♦️ devDependency Statusnpm version

Grunt task generating manifests with fingerprinted assets to be injected and cached via localstorage.

Please refer to the browser related repository for a more comprehensive explaination behind the concepts of the dactylographsy project.

NPM

Getting Started

This plugin requires Grunt ~0.4.2

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:

Install node dependency via npm

npm install grunt-dactylographsy --save-dev

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

grunt.loadNpmTasks('grunt-dactylographsy');

The "dactylographsy" task

Overview

In your project's Gruntfile, the dactylographsy task is available to use.

You can run grunt dactylographsy standalone Or add it to an existing task: grunt.registerTask('test', ['clean', 'dactylographsy']);

Options

// Location of manifest file containing file information with hashes
location: 'dactylographsy.json'
// Root impacting location of dactylographsy.json
root: 'dist'
// The project's root url: written into manifest, consumed by client-side script
rootUrl: null
// Additional package url: e.g. if multiple packages reside on the same host
packageUrl: null
// Paths which assets are stored internally but which are not relevant for client-side script
// e.g. /dist. These will be removed from paths to assets!
devPaths: []
// The package name to identify the manifest by
package: 'None'

An example configuration can be found here and if you want to check the options you might want to check the Gruntfile itself.

Developing & Contributing

Developing on the task alone is fairly easy just git clone https://github.com/dactylographsy/grunt-dactylographsy.git then cd grunt-dactylographsy. From there one has to link the package to itself via npm link && npm link grunt-dactylographsy which will allow for calling grunt dev. Now just work the task/dactylographsy.js and check results - feel free to submit a pull-request!

Release History

  • 0.0.0 Development, do not use!
  • 1.0.0 Initial release with grunt-task and client-side script
  • 1.0.1 Add support for stripping dev folders from asset directories via devPaths option
  • 1.0.2 Add versioned client side bundles
  • 1.1.0 Refactor root path resolving and add support for cache prefix
  • 1.1.1 Fix root path resolving adding stripping of null'ed values
  • 1.1.2 Add a package url option
  • 1.1.3 Release caused by upgrade of UglifyJS
  • 1.2.0 Add injection of unprinted scripts in case of error
  • 1.2.1 Delay caching while still immediately taking care of 404'ed assets
  • 1.3.0 Feature detect localstorage
  • 1.4.0 Add delayed refreshing of app
  • 1.5.0 Add data-attribtue with script name to inline-scripts from cache
  • 1.6.0 Add cache cleaning by unique identifer to not keep n-versions of files in cache and add cache delay
  • 1.6.1 Fix assets being deduped by filename, extension and their path
  • 1.7.0 Stable release
  • 1.8.0 Add 'cacheManifests' option to indicate if manifests shall be cached or not
  • 1.9.0 Add configurable logging (not removing console-statements with minifiction)
  • 1.9.1 Fix major issue in script injection order (promise resolving on cache with earlier rejection)
  • 1.9.2 Fix auto deferring inline scripts breaking the injection order too
  • 1.9.3 Fix singarity of cached assets for adding entry on serialized object
  • 1.10.0 Add using document fragments for injections (speeds up DOM access)
  • 1.11.0 Fix issue where cached js-files where executed before uncached files
  • 1.12.0 Add using node-dactylographsy and remove thereby duplicate sources
  • 1.13.0 Moves all browser related sources to browser-dactylographsy
  • 1.14.0 Add manifest fingerprint (versions manifests)
  • 1.16.0 Add string hashing
  • 2.0.0 Drop support for node <= 0.12

Acknowledgements

  • ...to great people around me supporting me with ideas and feedback!

About

Grunt task generating manifests with fingerprinted assets to be injected and cached via localstorage

Resources

License

Stars

Watchers

Forks

Packages

No packages published