# steal

> Gets JavaScript.

Latest version **2.3.0** (published 2022-06-09) · 0 weekly downloads

## Install

```sh
npm install steal
pnpm add steal
yarn add steal
bun add steal
```

## Health

**Score 5/100 (F)** — status: abandoned.

Warnings: low downloads; no types; no esm support; has vulnerabilities.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.3.0 |
| Published | 2022-06-09 |
| First published | 2014-06-24 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 19 |
| Unpacked size | 4.4 MB |
| Known vulnerabilities | 8 |
| Install scripts | no |
| Author | Bitovi |
| Maintainers | phillipskevin, justinbmeyer, matthewp, m-mujica, chasen, bmomberger-bitovi |
| Keywords | stealjs, donejs, modules, es6, bundling |

## Links

- npm: https://www.npmjs.com/package/steal
- Repository: https://github.com/stealjs/steal
- Homepage: https://github.com/stealjs/steal#readme
- Issues: https://github.com/stealjs/steal/issues
- npm.io page: https://npm.io/package/steal

## Dependencies (19)

- [assert](https://npm.io/package/assert.md) ~1.4.1
- [buffer](https://npm.io/package/buffer.md) ~5.0.4
- [events](https://npm.io/package/events.md) ^1.1.1
- [process](https://npm.io/package/process.md) ~0.11.9
- [resolve](https://npm.io/package/resolve.md) ^1.1.7
- [punycode](https://npm.io/package/punycode.md) ~2.0.1
- [os-browserify](https://npm.io/package/os-browserify.md) ~0.3.0
- [testee-client](https://npm.io/package/testee-client.md) ^0.5.6
- [vm-browserify](https://npm.io/package/vm-browserify.md) ~0.0.4
- [domain-browser](https://npm.io/package/domain-browser.md) ~1.1.2
- [string_decoder](https://npm.io/package/string_decoder.md) ~1.0.0
- [tty-browserify](https://npm.io/package/tty-browserify.md) ~0.0.0
- [http-browserify](https://npm.io/package/http-browserify.md) ~1.7.0
- [path-browserify](https://npm.io/package/path-browserify.md) ~0.0.0
- [zlib-browserify](https://npm.io/package/zlib-browserify.md) ~0.0.3
- [https-browserify](https://npm.io/package/https-browserify.md) ~1.0.0
- [crypto-browserify](https://npm.io/package/crypto-browserify.md) ~3.11.0
- [console-browserify](https://npm.io/package/console-browserify.md) ~1.1.0
- [constants-browserify](https://npm.io/package/constants-browserify.md) ~1.0.0

## Recent versions

- 2.3.0 (latest) — 2022-06-09
- 2.3.0-pre.0 (pre) — 2021-04-28
- 1.12.6 (ten) — 2018-10-05
- 0.16.45 (016) — 2018-08-01
- 1.5.0-supercache.0 (supercache) — 2017-04-10
- 1.0.0-rc2 (rc) — 2016-12-02
- 1.0.0-beta.3 (beta) — 2016-07-18
- 2.2.4 — 2019-10-21
- 2.2.3 — 2019-09-05
- 2.2.2 — 2019-08-01
- 2.2.1 — 2019-03-25
- 2.2.0 — 2019-03-05
- 2.1.14 — 2019-01-15
- 2.1.13 — 2019-01-08
- 2.1.12 — 2018-12-28
- … 296 more at https://npm.io/package/steal/versions

## README

# steal

[![Join our Slack](https://img.shields.io/badge/slack-join%20chat-611f69.svg)](https://www.bitovi.com/community/slack?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Join our Discourse](https://img.shields.io/discourse/https/forums.bitovi.com/posts.svg)](https://forums.bitovi.com/?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/stealjs/steal/blob/master/license.md)
[![npm version](https://badge.fury.io/js/steal.svg)](https://www.npmjs.com/package/steal)
[![Travis build status](https://travis-ci.org/stealjs/steal.svg?branch=master)](https://travis-ci.org/stealjs/steal)
[![Greenkeeper badge](https://badges.greenkeeper.io/stealjs/steal.svg)](https://greenkeeper.io/)

[![Sauce Test Status](https://saucelabs.com/browser-matrix/matthewphillips.svg)](https://saucelabs.com/u/matthewphillips)

In addition to a collection of plugins, __StealJS__ is comprised of two main components:

  - __`steal`__: an extensible, universal module loader.
  - __`steal-tools`__: utilities for building, transforming, and exporting module formats.

This is the `steal` repository. For the `tools`, see <https://github.com/stealjs/steal-tools>.

## Module Loading with `steal`

`steal` is unique because it can load JavaScript modules defined in ES6, AMD, and CommonJS formats (unlike most other module loaders, which only support one of these formats at a time).

In JavaScript, the word "modules" refers to small units of independent, reusable code. They are the foundation of many JavaScript design patterns, and can look like this in ES6:

```js
export function hello() {
  console.log('hello');
}
export function goodbye() {
  console.log('goodbye');
}
```

Or like this in AMD:

```js
define([], function() {
  return {
    hello: function() {
      console.log('hello');
    },
    goodbye: function() {
      console.log('goodbye');
    }
  };
});
```

Or like this CommonJS:

```js
function hello() {
  console.log('hello');
}
function goodbye() {
  console.log('goodbye');
}
module.exports = {
  hello: hello,
  goodbye: goodbye
}
```

All of these formats are supported by `steal`, so you can mix and match modules in your project:

```js
// ES6
import { hello, goodbye } from  "greetings";

// AMD
define(["greetings"],function(greetings){ ... });

// CommonJS
var hello = require('greetings').hello;
var goodbye = require('greetings').goodbye;
```

Additionally, plugins make it possible to load ANY module type you might come up with, such as Less or CSS. Anyone can write a plugin for `steal` to extend it's core module-loading functionality.

## Extending `steal` with Plugins

The StealJS organization maintains popular plugins that extend and enhance the module-loading capabilities of `steal` (and, subsequently, `steal-tools`) such as:

  - [CSS](https://github.com/stealjs/steal-css)
  - [Less](https://github.com/stealjs/steal-less)
  - [Conditional](https://github.com/stealjs/steal-conditional)
  - [Mocha](https://github.com/stealjs/steal-mocha)
  - [QUnit](https://github.com/stealjs/steal-qunit)

For example, the Less plugin allows Less files to be loaded similarly to JavaScript modules:

```js
// ES6
import "style.less";

// AMD
define(["style.less"],function(){ ... });

// CommonJS
require("style.less");

// steal
steal("style.less")
```

Looking to create a plugin for another format? See [Writing Plugins](https://stealjs.com/docs/StealJS.writing-plugins.html).

For more information on StealJS, visit [StealJS.com](http://stealjs.com).

# Contributing

For information on contributing and developing, see the [Contributing Guide on StealJS.com](http://stealjs.com/docs/guides.Contributing.html).

---
_Source: https://npm.io/package/steal · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
