# gulp-requirejs

> Builds projects using require.js's optimizer

Latest version **1.4.0** (published 2020-07-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install gulp-requirejs
pnpm add gulp-requirejs
yarn add gulp-requirejs
bun add gulp-requirejs
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.4.0 |
| Published | 2020-07-24 |
| First published | 2014-01-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 6 |
| Dependencies | 4 |
| Unpacked size | 9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 60 |
| Author | Jorrit Schippers |
| Maintainers | jorritschippers, robinthrift |
| Keywords | amd, gulpplugin, requirejs |

## Links

- npm: https://www.npmjs.com/package/gulp-requirejs
- Repository: https://github.com/jorrit/gulp-requirejs
- Issues: https://github.com/jorrit/gulp-requirejs/issues
- npm.io page: https://npm.io/package/gulp-requirejs

## Dependencies (4)

- [vinyl](https://npm.io/package/vinyl.md) ^2.2.0
- [requirejs](https://npm.io/package/requirejs.md) ^2.3.6
- [event-stream](https://npm.io/package/event-stream.md) ^4.0.1
- [plugin-error](https://npm.io/package/plugin-error.md) ^1.0.1

## Alternatives

- [@mdxeditor/editor](https://npm.io/package/@mdxeditor/editor.md) — 962.4K weekly downloads
- [mmdb-lib](https://npm.io/package/mmdb-lib.md) — 680.9K weekly downloads
- [playcanvas](https://npm.io/package/playcanvas.md) — 36.2K weekly downloads
- [@glw907/cairn-cms](https://npm.io/package/@glw907/cairn-cms.md) — 967 weekly downloads
- [markdown-to-confluence](https://npm.io/package/markdown-to-confluence.md) — 103 weekly downloads

## Recent versions

- 1.4.0 (latest) — 2020-07-24
- 1.3.0 — 2019-05-20
- 1.2.1 — 2018-12-13
- 1.2.0 — 2018-09-17
- 1.1.1 — 2018-01-08
- 1.1.0 — 2018-01-08
- 1.0.0 — 2017-09-07
- 1.0.0-rc2 — 2017-04-01
- 1.0.0-rc1 — 2016-12-20
- 0.4.0 — 2016-12-02
- 0.3.0 — 2016-11-06
- 0.2.0 — 2016-10-25
- 0.1.3 — 2014-01-09
- 0.1.2 — 2014-01-08
- 0.1.1 — 2014-01-08
- … 1 more at https://npm.io/package/gulp-requirejs/versions

## README

# gulp-requirejs

[![gulp-requirejs on npm](https://img.shields.io/npm/v/gulp-requirejs.svg?style=flat)](https://www.npmjs.com/package/gulp-requirejs)
[![Dependency Status](https://david-dm.org/jorrit/gulp-requirejs/status.svg)](https://david-dm.org/jorrit/gulp-requirejs)
[![Development Dependency Status](https://david-dm.org/jorrit/gulp-requirejs/dev-status.svg)](https://david-dm.org/jorrit/gulp-requirejs?type=dev)
[![Build Status](https://travis-ci.org/jorrit/gulp-requirejs.svg?branch=master)](https://travis-ci.org/jorrit/gulp-requirejs)
[![Coverage](https://coveralls.io/repos/github/jorrit/gulp-requirejs/badge.svg)](https://coveralls.io/github/jorrit/gulp-requirejs)

## Information

A small, simple, very easy wrapper around the [require.js optimizer](https://github.com/jrburke/r.js) to work with [gulp.js](https://github.com/gulpjs/gulp).

<table>
<tr>
<td>Package</td><td>gulp-requirejs</td>
</tr>
<tr>
<td>Description</td>
<td>uses require.js's r.js optimizer to combine require.js AMD modules into one file</td>
</tr>
<tr>
<td>Node Version</td>
<td>≧ 4</td>
</tr>
</table>


## Installation

Simply add `gulp-requirejs` as a dev-dependency in your package.json or run

```bash
$ npm install --save-dev gulp-requirejs
```

## Usage

Because the require.js optimizer (_r.js_) is a kind of build system in itself we can't use the `gulp.src([...])` syntax at the moment (I might add this in future), instead this wrapper itself emits a pipable stream, holding a 'virtual' file, in which the result of the r.js build process are saved.

The resulting stream can be treated like a regular `gulp.src(...)` stream.

>NOTE: The built in minification/obfuscation is deactivated by default. It is recommended to use a gulp plugin like gulp-uglify for minification, but you can enable r.js minification by setting the `optimize` option to `uglify` to minify using r.js.

```javascript
var gulp = require('gulp'),
    rjs = require('gulp-requirejs');

gulp.task('requirejsBuild', function() {
    return rjs({
        baseUrl: 'root/directory/of/js/files/',
        out: 'FILENAME_TO_BE_OUTPUTTED',
        name: 'mainfile', // no extension
        shim: {
            // standard require.js shim options
        },
        // ... more require.js options
    })
    .pipe(gulp.dest('./deploy/')); // pipe it to the output DIR
});
```

If you use instead of out the dir option, you do not need the pipe at all, see this example in Gulp 4 syntax and mocha test:

```javascript
const rjs = require('gulp-requirejs');

async function requirejsBuild(cb) {
    return rjs({
        dir: 'deploy',
        mainConfigFile: 'config.js',
        path: {
          'config': '../config_init'
        },
        modules: [{
          name: 'FILENAME_TO_BE_OUTPUTTED', // no extension
          include  : [ .. ]
         ...
        }]
    }) ...
};
    
exports.requirejsBuild = requirejsBuild;
```

Note: In order to let gulp know that the optimization completes, return the rjs stream.

See [requirejs.org](https://requirejs.org/docs/optimization.html) for more information about the supported parameters.

### Error handling

gulp-requirejs will emit errors when you don't pass an options object, if the `baseUrl` or `out` properties are undefined or when the requirejs optimizer detects an error.

### Source maps

When source maps are enabled via the r.js `generateSourceMaps` option the file in the stream `rjs()` contains a `sourceMap` property with the sourcemap as an object.

Use [gulp-sourcemaps](https://www.npmjs.com/package/gulp-sourcemaps) to process this object in your gulp configuration.

```javascript
var gulp = require('gulp'),
    rjs = require('gulp-requirejs')
    sourcemaps = require('gulp-sourcemaps');

gulp.task('requirejsBuild', function() {
    return rjs({
        baseUrl: 'root/directory/of/js/files/',
        out: 'FILENAME_TO_BE_OUTPUTTED',
        name: 'mainfile', // no extension
        generateSourceMaps: true,
        shim: {
            // standard require.js shim options
        },
        // ... more require.js options
    })
    .pipe(sourcemaps.init({loadMaps: true})) // initialize gulp-sourcemaps with the existing map
    .pipe(sourcemaps.write()) // write the source maps
    .pipe(gulp.dest('./deploy/')); // pipe it to the output DIR
});
```

## Options

The options object supports the same parameters as the [require.js optimizer](https://github.com/jrburke/r.js).

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