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

rune.plugin.js

v1.0.5

Published

A command-line tool for building and publishing Rune.js plugins

Downloads

2

Readme

Rune.js Plugin Helper

This is a command-line tool that helps you create, test and publish Rune.js plugins for both node and the browser. For a simple plugin that uses this command-line tool, look at rune.font.js. to use this tool, you need to follow a few guidelines:

  • The name of the package in the package.json file has to be rune.NAME.js. This is what your published module will be called, and this will be the name of the file located in dist that can be used in the browser.

  • The code has to work in Node without any webpacking. This means that you should be able to run npm publish directly from the package.

  • The code will be run through webpack to create a version for the browser. All your var Rune = require('rune.js') will automatically ignored by Webpack, as plugins are expected to have the rune.js file loaded in the browser already.

Installation

First install the module:

npm i rune.plugin.js -g

Build

Then build your plugin for the browser:

rune build

You now have a file named after your plugin inside of build. This file works in the browser, and your library is available as a global on Rune.Name.

If you want to override the default webpack config, you can do this with a rune.plugin.js file in the root of your repo. This file has to export a function that changes the config. This can be used if you have require() statements that should be ignored for the browser. The build process already ignores rune.js, as developers are expected to include it in the browser before using a plugin.

module.exports = function(webpackConfig) {
  webpackConfig.externals.jQuery = 'jQuery';
  return webpackConfig;
}

Test

The command line also helps you test your plugin with Jasmine. It expects a test folder structure like this:

test/
  both/     -> Folder with spec files for both Node.js and the Browser
  node/     -> Folder with spec files only for Node.js
  browser/  -> Folder with spec files only for the browser

Any file inside those folders will be searched for describe() and it() for Jasmine.

This will run the specs in node directly.

rune test node

This will run the specs in a browser.

rune test browser

These commands will also look for files named matchers.js and helpers.js inside of the test folder. You can put Jasmine-related code in those files.

All tests will automatically have access to a Rune object and a Rune.PLUGINNAME object with your plugin in it. So tests should not use require().