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

plantation

v0.0.19

Published

`plantation` is a collection of [cake](http://coffeescript.org/#cake) tasks to simplify working on projects using multiple transpilers, particularly coffeescript and YAML. It has strong opinions about the tools you want to use.

Downloads

69

Readme

Plantation

plantation is a collection of cake tasks to simplify working on projects using multiple transpilers, particularly coffeescript and YAML. It has strong opinions about the tools you want to use.

Status

The project is currently under very fitful development, and may be subject to breaking rewrites at any time.

Installation

There are two ways to install plantation:

  1. Install globally

    You can install plantation globally:

    npm install -g plantation

    You can then run plantation in your shell to see the list of commands available.

    This option is not really recommended, it ties all your projects to the same version.

  2. Install locally

    You can install plantation locally on a per-project basis:

    npm install plantation

    You can then run node_module/.bin/plantation in your shell to see the list of commands available. Alternatively, you can create/modify a Cakefile to contain:

    do require 'plantation'

    You can then run cake in your shell to see the list of commands available.

    This will load the tasks from the local installation of plantation. This allows you to lock your project on a specific version of plantation, giving you a way to hide from breaking changes.

Usage

Run the commands below with the executable you installed.

  • info

    Shows the configuration that plantation will run with. Configuration is typically inferred based on convention, but can be given explicitly (see API).

    The configuration shown will look something like:

    Plantation options:
      directories:         # the directories plantation will use
        current: <cwd>     # the 'project directory'
        source:  <cwd>/src # the directory in which plantation will look for source files to compile
        target:  <cwd>     # the directory in which plantation will write compiled files
      compilers:           # the compilers plantation has registered
        coffee             # the coffeescript compiler
        yaml               # the YAML compiler
  • build[:compiler]

    Performs a build, either with all registered compilers or a specific compiler.

    A build involves trying to compile every source file with every compiler (though typically the compiler will only agree to compile files with a specific file extension).

    Running plantation build will produce something like:

    coffee : src/lib/class.coffee > lib/class.js
      yaml : src/package.yml      > package.json
  • watch[:compiler]

    Starts watching all files in the source directory. When they change they will be built, either with the given compiler or with all registered compilers.

    Running plantation watch, then editting src/package.yml will produce something like:

    yaml : src/package.yml  >  package.json
  • test[:watch]

    test runs all tests using mocha. test:watch provides the --watch argument to mocha. chai.expect and sinon are available globally in the tests, and chai is configured to use sinon-chai assertions.

    Default mocha configuration can be overidden by setting the mocha key when configuring plantation.

    See the mocha homepage for more information about mocha.

  • bump:{major,minor,patch,pre}

    Bumps a bit of the version and overwrites the version in <source directory>/package.yml, then performs a build to update package.json. Uses semver for manipulating versions.

    The output from bump:minor might look like:

    bumping 0.2.3 -> 0.3.0
    wrote src/package.yml
      yaml : src/package.yml  >  package.json
  • tag:{major,minor,patch,pre}

    Performs a bump of the given bit, then commits the changed package file and tags the commit. The commit message, tag name, and tag message will all simply equal <new version>.

    The output from tag:minor might look like:

    bumping 0.2.3 -> 0.3.0
    wrote src/package.yml
      yaml : src/package.yml  >  package.json
    tagged 0.3.0
  • publish:{major,minor,patch,pre}

    Performs a tag of the given bit, then pushes the new HEAD to origin/master, pushes the new tag and publishes the new version to npm.

    The output from publish:minor might look like:

    bumping 0.2.3 -> 0.3.0
    wrote src/package.yml
      yaml : src/package.yml  >  package.json
    tagged 0.3.0
    [git push output]
       abc123..def456  HEAD -> master
     * [new tag]       0.3.0 -> 0.3.0
    published 0.3.0

API

See source.