npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

grunt-dactylographsy

v2.0.3

Published

A grunt plugin to fingerprint your assets while outputing the result.

Downloads

25

Readme

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!