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

shunt

v0.1.6

Published

A shit alternative to grunt, hence sh+unt

Downloads

24

Readme

Shunt

A Shit alternative to Grunt, hence Shunt

Shunt works on files to combine, minify and replace strings etc. What gets spat out is nicely packed for production.

Install

npm install shunt --save-dev

Example (Gruntless)

Write a build.js script, this is where you sort the shit out. Here's an example...

// Include the library
var shunt = require('shunt');

// Start Shunting
shunt(
	// Files to shunt `target:file(s)`
	{
		// Minify and shunt a single file
		'output.min.js' : 'input.js',

		// Create a combined minified file
		'combine.min.js' : ['input1.js', 'input2.js'],

		// Create an MarkDown file from an HTML file
		'output.md' : 'input.html',

		// Move an HTML file
		'output.html' : 'input.html'
	},

	// OPTIONS
	{
		replace : {
			// replace all local environment strings with development paths e.g. {find => replace, ... }
			'http://localhost/' : 'http://remote.com/'
		}
	}
);

Then run it node build.js, got it? Boom!

Example (Gruntful)

Shunt also doubles as a plugin for Grunt, a la shizame...

shunt : {
	// Slightly different structure

	// Task's
	subtask :{
		// shunt files, as above
	},
	// [, subtask2 : {} [, etc...]];

	// options
	options : {
		// e.g. replace
	}
}

Magic shit

Moving an html file to a new place, also grabs relative files links to .css and .js files and moves them too (by default they also get minified, again Boom!).

shunt({
	'bin/index.html' : 'src/index.html'
})

Automate

Not unique to this project but here's how i automate the build process in Sublime Text 2.

After creating a script like build.js above (actually i prefix with a underscore to make it different, e.g. _build.js, do this, it'll sit nicely at the top of your file lists!)

In Sublime Text 2 go to "Tools" -> "Build System" -> "New Build System..."

Paste the following code

{
	"cmd": ["node", "${file_path:${folder}}/_build.js", "$file_path"],
	"working_dir" : "${file_path:${folder}}"
}

Save with a memorable name e.g. "build.js", aka "build.js.sublime-build". Then go back into "Tools" -> "Build System" and select it.

Now from the directory where it is installed type, Ctrl + B ... you should see some action.

Contributing

Yeah go on, it'll make you feel good about yourself.