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

thickshake

v1.4.0

Published

A library of common gulp tasks

Downloads

9

Readme

Thickshake :shaved_ice:

Thickshake is a system for using common gulptasks. This is the core module.

Installation

Add the following to your gulpfile.js.


var thickshake = require('thickshake')();

The folder sample includes the folder structure and config in order to run gulp. Please copy these into your local app.

Usage

Three tasks are included that can be run using gulp, gulp build and gulp develop.

Writing modules

A module should perform a single task. Configurability should be fairly limited, but definitely allow for configuration of sources and destinations, reading from the thickshake.getSource('yourmodule') and thickshake.getDest('yourmodule') config variables where possible.

Actions like minifying css and including sourcemaps should be governed by thickshake.getConfig('debug') rather than thickshake.getConfig('styles.minify') to avoid users having to change a whole bunch of config to set up a production vs debug build.

Extra config that is really required for basic functionality of the module (for example, include paths, which are needed but different for every project) should be accessed by thickshake.getConfig('module.identifier', 'sane default').

Reading from configs should be done outside of task scope. If all of the calls to thickshake.getSource et al are performed before any tasks are executed, then fully populated default configuration files can be automatically generated, saving having to hunt around for missing configuration values.

The whole point of this module is to reduce the amount of boilerplate/setup time, so it's okay to be a little didactic. If a user has a task that really does need that extra config, they can just write a gulp task themselves.

Tasks should add themselves to the thickshake build, develop and watch lists as appropriate, via thickshake.addBuild, thickshake.addDevelop and thickshake.addWatch lists respectively. All of the build tasks will be added as a dependency to gulp build, while all of the develop tasks will be executed (along with the watch tasks) as part of gulp develop.