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

rump-scripts

v0.8.1

Published

Rump piece for building JS with Webpack

Downloads

82

Readme

Rump Scripts

NPM License Issues

Status

Master

Dependencies Dev Dependencies Travis Appveyor Codecov

Develop

Dependencies Dev Dependencies Travis Appveyor Codecov

About

Rump Scripts is a Rump module for handling and building scripts with Webpack, offering a lot of flexibility and configuration to author your scripts. For more information, visit the core repository.

API

The following is appended to the core Rump API:

rump.addGulpTasks(options)

This module adds the following tasks:

  • build:scripts will process and build scripts with Webpack. For more information on source and destination paths see rump.configure() below. This task is also added to the build task for single builds as well as the watch task for continuous builds.
  • info:scripts will display information on what this specific module does, specifically the source and destination paths as well as what files would get processed. This task is also added to the info task.

rump.configure(options)

Redefine options for Rump and Rump modules to follow. In addition to what options Rump and other Rump modules offer, the following options are available alongside default values:

options.paths.source.scripts ('scripts')

This is the directory where scripts to be processed are contained. This path is relative to the root source path. (If the default root and scripts path is used, then the path would be src/scripts)

options.paths.destination.scripts ('scripts')

This is the directory where processed scripts are copied to. This path is relative to the root destination path. (If the default root and scripts path is used, then the path would be dist/scripts)

options.globs.build.scripts ('*.js' minumum)

This specifies which scripts to process. By default it at least processes all JS files in the top level directory of the root source path for scripts. See the Loaders section below for information on any other extensions are set.

options.scripts.minify (options.environment === 'production')

This specifies whether to minify and uglify generated JS. (minified if true) By default JS is minified only if the environment is set to production. (visit the main Rump repository for more information on environment)

options.scripts.sourceMap (options.environment === 'development')

This specifies whether to include inline source maps to generated JS. (source maps included if true) By default source maps are included only if the environment is set to development. (visit the main Rump repository for more information on environment)

options.scripts.macros ({'process.env.NODE_ENV': JSON.stringify(options.environment)})

This specifies identifiers that get injected into scripts as it is getting processed. By default the only value injected is process.env.NODE_ENV as a convenience to only run code in certain environments. Pass in key-value pairs to define more macros. In fact, this is a convenience for Webpack's DefinePlugin.

options.scripts.aliases

This specifies module names to redefine in scripts as it is getting processed. Pass in an object with key-value pairs to redefine module names. In fact, this is a convenience for Webpack's resolve.alias option. See the Loaders section below for information on any aliases already set.

options.scripts.common

This specifies whether to gather common modules that are shared across multiple generated scripts and place them in a new JS file or add it to an existing JS file. If value is set to true, then either a new common.js file is created or is appended to an existing common.js file. If value is a string instead, then that is the name used instead, whether creating a new file or using an existing one. (an example is specifying the value 'shared' will result in a shared.js file) In fact, this is a convenience for Webpack's CommonsChunk.

options.scripts.library

This specifies whether to expose exported modules for scripts at the top level source directory using UMD. If value is set to true, then exports are exposed. If value is set to a string, then that string is used to attach to global namespaces such as the window property in browsers.

options.scripts.loaders

This specifies Webpack loaders to apply to scripts. This is useful for when you want to add support for things like other languages. Pass in an array of objects to specify which loaders to apply. In fact, this is a convenience for Webpack's module.loaders. Read more about using Webpack loaders here. See the Loaders section below for information on any loaders already set.

options.scripts.webpack

This specifies any options you want to override in Webpack. This is best if you want to fully make changes in Webpack's configuration.

options.scripts.uglifyjs

This specifies options that are sent to UglifyJS through Webpack when minifying. The default options set are:

{
  output: {
    comments: false
  },
  compress: {
    drop_console: true,
    drop_debugger: true
  }
}

rump.configs.webpack, rump.configs.uglifyjs

This contains the generated options that are passed to Webpack and UglifyJS, (from Webpack) respectively, in the Gulp task. This is a good way to see what options are generated based on defaults and overrides.

Loaders

Rump Scripts will detect loaders available in the project and append items as needed:

  • json-loader will add support for JSON files.
  • coffee-loader will add support for CoffeeScript files. (.coffee, .coffee.md, and .litcoffee)
  • html-loader will add support to expose HTML files as a string.
  • babel-loader will add support for transpiling JS and JSX using Babel. (.js, and .jsx except from node_modules and bower_components)

Want support for another loader? Open an issue/PR.