Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including hire-packer with all npm packages installed. Try it out:

hire-packer lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("hire-packer/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

hire-packer v0.0.1

Generate dynamic `package.json` files.

hire-packer

hire-packer is a convenience utility for generating a package.json file from a dynamic source.

Motivation

While working on a project which made heavy use of npm's scripts feature, I saw there were a lot of references to filepaths. There was an existing object in the system which contained references to these paths so that if they changed, files that referred to them wouldn't break. I wanted to use that object to DRY up the filepaths, but I couldn't.

Also, as the file got larger, I found myself wanting to organize it, which I also couldn't do easily since I couldn't use newlines in valid JSON.

This library is for you if, while writing your package.json ...

  1. You want to be able to utilize external libraries while constructing your package.
  2. You want to put newlines and comments wherever you darn well please.
  3. You want to write your package.json using CoffeeScript.

So you can turn this:

{
  "name": "anteater",
  "description": "Given a collection of ants, anteater will eat most of them.",
  "version": "0.0.1",
  "scripts": {
    "build": "minify ./ui/all.js",
    "eat-ants": "node ./anteater/actions/eat-ants.js"
  },
  "dependencies": {
    "express": "*",
    "q": "*"
  }
}

Into this:

PathTo  = require './Pathfinder'
Version = require './Version'

module.exports =
  name        : 'anteater'
  description : 'Given a collection of ants, anteater will eat most of them.'
  version     : Version

  scripts:
    "build"    : "minify #{ PathTo.file.scriptManifest }"
    "eat-ants" : "node #{ PathTo.service.EatAnts }"

  dependencies:
    # Server
    "express": "*"

    # Utility
    "q": "*"

Usage

Step 0: Install

npm install -g hire-packer

Step 1: Prepare Your Package

hire-packer expects a Package.coffee file to be present in the directory in which it is run. It expects this file to export a JavaScript object, like so:

module.exports =
  name        : "anteater"
  description : "Given a collection of ants, anteater will eat most of them."

Step 2: Pack It Down

From the command line, run hire-packer. Your package.json will be generated in the current directory.

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free