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-coffeeify

v0.1.3

Published

A grunt plugin for browserifying your coffee + js projects!

Downloads

289

Readme

grunt-coffeeify

A grunt plugin for browserifying your coffee + js projects!

grunt-coffeeify is a Browserify ~2.6.0 compatible browserifier. It is a grunt multitask. It supports browserify require, browserify debug, browserify transform, insert-globals, and ignore-missing. It is intended to replace the grunt-browserify grunt plugin for grunt >= 0.4.1.

Thanks to @substack for the wonderful browserify and coffeeify node modules.

Getting Started

This plugin requires Grunt ~0.4.1

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:

npm install grunt-coffeeify --save-dev

One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-coffeeify');

The "coffeeify" task

Overview

In your project's Gruntfile, add a section named coffeeify to the data object passed into grunt.initConfig().

grunt.initConfig({
  coffeeify: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
})

Options

options.insertGlobals

Type: Boolean Default value: false

Skip detection and always insert definitions for process, global, __filename, and __dirname.

benefit: faster builds cost: extra bytes

options.detectGlobals

Type: Boolean Default value: true

Detect the presence of process, global, __filename, and __dirname and define these values when present.

benefit: npm modules are more likely to work cost: slower builds

options.ignoreMissing

Type: Boolean Default value: false

Ignore require() statements that don't resolve to anything.

options.debug

Type: Boolean Default value: false

Enable source maps that allow you to debug your files separately.

options.requires

Type: Array Default value: null

An array of npm module names or relative paths to files to include in the bundle.

options.transforms

Type: Array Default value: [coffeeify]

An array of functions fitting the signature:

function(file) {
   ...
   return through();
}

where through() is a through-stream. The coffeeify transform by default, which compiles all coffee-script source files while browserifying them.

options.prepend

Type: String Default value: ''

String to prepend to the bundle. Useful for licenses or banners, for example.

options.append

Type: String Default value: ''

String to append to the bundle.

Usage Examples

Default Options

In this example, the default options are used to coffeeify a project with mixed js and coffee-script source files. The files array can have many src/dest file objects. src path glob patterns are supported by minimatch. This example will resolve all requires and compile all coffee files when bundling.

grunt.initConfig({
  coffeeify: {
    options: {},
    files: [
      {src:['path/to/src/**/*.coffee', 'path/to/src/**/*.js'], dest:'dist/myApp.js'}
    ]
  },
})

Custom Options

This example is similar, but I have included the non-default requires, transforms, and debug options. This example will bundle the source like before, including the when js module, and brfs and coffeeify transforms, as well as generate sourcemaps for all required files. Note the file requires need to be specified as relative to the Gruntfile.

grunt.initConfig({
  coffeeify: {
    options: {
      transforms: [brfs],
      requires: ['when', './relative/path/to/file/from/here.js'],
      debug: true
    },
    files: [
      {src:['path/to/src/**/*.coffee', 'path/to/src/**/*.js'], dest:'dist/myApp.js'}
    ]
  },
})

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

(Nothing yet)

Issues

Please use the github issues list to report any issues. If possible, please include a link to an open github repo with the smallest failing example of your issue. Even better, fork the project, create a failing test case and issue a pull request with the issue number referenced in the pull request. Even better than thant, fork the project create a failing test case, fix the problem, and issue a pull request with the test and fix referencing the issue number.