PHPackages                             oro/requirejs-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. oro/requirejs-bundle

Abandoned → [oro/platform](/?search=oro%2Fplatform)ArchivedSymfony-bundle[Utility &amp; Helpers](/categories/utility)

oro/requirejs-bundle
====================

BAP RequireJS Bundle

1.3.1(11y ago)25531MITPHPPHP &gt;=5.3.3

Since Oct 21Pushed 8y ago9 watchersCompare

[ Source](https://github.com/oroinc/RequireJSBundle)[ Packagist](https://packagist.org/packages/oro/requirejs-bundle)[ Docs](https://github.com/laboro/RequireJSBundle)[ RSS](/packages/oro-requirejs-bundle/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (1)Versions (17)Used By (1)

OroRequireJSBundle
==================

[](#ororequirejsbundle)

OroRequireJSBundle uses the [RequireJS](http://requirejs.org/) library to enable a modular structure of JS components in Oro applications.

The bundle enables developers to define RequireJS configuration in YAML files on the bundle level. It also provides a CLI tool to collect RequireJS modules and configuration from bundles, merge and minify them in the production mode.

For details of the RequireJS configuration options, see [RequireJS API](http://requirejs.org/docs/api.html#config). For details of the RequireJS build options, see [example.build.js](https://github.com/jrburke/r.js/blob/master/build/example.build.js).

Require.js config generation
----------------------------

[](#requirejs-config-generation)

### Configuration

[](#configuration)

Common options for require.js config are placed in `config.yml`:

```
oro_require_js:
    config: # common options which will eventually get into require.js config file
        waitSeconds: 0
        enforceDefine: true
        scriptType: 'text/javascript'

```

Bundle specific options are defined inside `requirejs.yml` file, which is placed in `%BundleName%\Resources\config\requirejs.yml`. It can have three sections `shim`, `map` and `paths` (see [RequireJS API](http://requirejs.org/docs/api.html#config)). Each bundle's javascript module have to be defined in `paths` section, where key is a module name and value is its relative path from the document root.

```
config:
    shim:
        'jquery-ui':
            deps:
                - 'jquery'
    map:
        '*':
            'jquery': 'oroui/js/jquery-extend'
        'oroui/js/jquery-extend':
            'jquery': 'jquery'
    paths:
        'jquery': 'bundles/oroui/lib/jquery-1.10.2.js'
        'jquery-ui': 'bundles/oroui/lib/jquery-ui.min.js'
        'oroui/js/jquery-extend': 'bundles/oroui/js/jquery-extend.js'

```

### Generation

[](#generation)

Main require.js config is generated automatically and embedded in HTML-page. The config is stored in application cache. In case you wish to renew require.js configuration, just clean cache.

### Usage

[](#usage)

To get `require.js` script with its configuration on your page, just include `scripts.html.twig` template from `OroRequireJSBundle` to `` tag of your `index.html.twig` template.

```

    {% include 'OroRequireJSBundle::scripts.html.twig' %}

```

The template `scripts.html.twig` accepts two optional parameters `compressed` and `config_extend`.

- `compressed` is boolean (`true` by default), determines whether to use minified js-file or not. Usually it's opposite to `app.dev` flag.
- `config_extend` is a string with javascript code, allows to extend requirejs configuration in runtime mode (see [runtime require.js config](#runtime-requirejs-main-config-extension)).

    {% set requirejs\_config\_extend %} // custom javascript code {% endset %} {% include 'OroRequireJSBundle::scripts.html.twig' with { compressed: not app.debug, config\_extend: requirejs\_config\_extend } %}

Runtime require.js main config extension
----------------------------------------

[](#runtime-requirejs-main-config-extension)

Sometimes it is not enough to specify require.js configuration settings statically, it is required to modify certain parameters dynamically at each launch. It is possible to do this over `config_extend` parameter for `OroRequireJSBundle::scripts.html.twig` template. That variable can contain a piece of custom configuration which will be applied after general configuration is loaded and before any module is utilized.

E.g. to dynamically define the path to translation dictionary (depending on what locale is currently used):

```
{% set requirejs_config_extend %}
    require({
        paths: {
            'oro/translations':
                '{{ url('oro_translation_jstranslation')[0:-3] }}'
        }
    });
{% endset %}

```

In terms of sequence of code execution, it looks the following way:

1. Prod mode (and built resource exists)
    - execute all custom configurations
        `require(/* ... */); require(/* ... */); require(/* ... */);`
    - load single minified js-resource (with `require-config.js` + `require.js` and rest of modules)
2. Dev mode (or built resource does not exist)
    - load `require.js`
    - load `js/require-config.js`
    - execute all custom configurations
        `require(/* ... */); require(/* ... */); require(/* ... */);`

See `@OroRequireJSBundle::scripts.html.twig`

Build project
-------------

[](#build-project)

### Configuration

[](#configuration-1)

Build configuration starts in `config.yml`

```
oro_require_js:
    build_path: "js/oro.min.js"     # relative path from document root folder to project built
    building_timeout: 3600
    js_engine: "node"               # can be configured to use other engine, e.g. Rhino
    build_logger: false             # show in browser console not optimized RequireJS modules
    build:                          # build.js's common options
        optimize: "uglify2"
        preserveLicenseComments: true
        generateSourceMaps: true
        useSourceUrl: true

```

See details for [`oro_require_js.build`](https://github.com/jrburke/r.js/blob/master/build/example.build.js) options.

Beside general build-configuration, you can set bundle specific options inside `%BundleName%\Resources\config\requirejs.yml` file, root section `build`.

```
build:
    paths:
        'autobahn': 'empty:'

```

This directive will prevent module from getting concatenated into build file.

### Building

[](#building)

To make a build for JS-resources, just execute a command in console:

```
php bin/console oro:requirejs:build

```

It will:

1. take initial configuration from `oro_require_js.build` (`config.yml`);
2. extend it with configuration found in bundles (`%BundleName%\Resources\config\requirejs.yml`);
3. generate `build.js` - a config for builder;
4. run builder (time consuming process, especially for Rhino JS-engine);
5. remove `build.js`.

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community28

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Recently: every ~31 days

Total

16

Last Release

4295d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/30661063?v=4)[Oro, Inc](/maintainers/orocrm)[@orocrm](https://github.com/orocrm)

![](https://www.gravatar.com/avatar/864bf4a3a189cf0909faada696dd154b476ffaff2b39727ba60c033e44b7401a?d=identicon)[dmitriysoroka](/maintainers/dmitriysoroka)

---

Top Contributors

[![Grygir](https://avatars.githubusercontent.com/u/131182?v=4)](https://github.com/Grygir "Grygir (27 commits)")[![vladimirseniuk](https://avatars.githubusercontent.com/u/3224886?v=4)](https://github.com/vladimirseniuk "vladimirseniuk (25 commits)")[![amuzalevskiy](https://avatars.githubusercontent.com/u/1453122?v=4)](https://github.com/amuzalevskiy "amuzalevskiy (8 commits)")[![alexandr-parkhomenko](https://avatars.githubusercontent.com/u/6198444?v=4)](https://github.com/alexandr-parkhomenko "alexandr-parkhomenko (7 commits)")[![vsoroka](https://avatars.githubusercontent.com/u/4763952?v=4)](https://github.com/vsoroka "vsoroka (7 commits)")[![dxops](https://avatars.githubusercontent.com/u/1804871?v=4)](https://github.com/dxops "dxops (5 commits)")[![vitaliyberdylo](https://avatars.githubusercontent.com/u/1668719?v=4)](https://github.com/vitaliyberdylo "vitaliyberdylo (5 commits)")[![SergeyZ](https://avatars.githubusercontent.com/u/92912310?v=4)](https://github.com/SergeyZ "SergeyZ (5 commits)")[![popadko](https://avatars.githubusercontent.com/u/1937921?v=4)](https://github.com/popadko "popadko (5 commits)")[![ste93cry](https://avatars.githubusercontent.com/u/1770485?v=4)](https://github.com/ste93cry "ste93cry (4 commits)")[![aalgogiver](https://avatars.githubusercontent.com/u/11629050?v=4)](https://github.com/aalgogiver "aalgogiver (3 commits)")[![yshyshkin](https://avatars.githubusercontent.com/u/3470882?v=4)](https://github.com/yshyshkin "yshyshkin (3 commits)")[![anyt](https://avatars.githubusercontent.com/u/5183991?v=4)](https://github.com/anyt "anyt (3 commits)")[![ikrynychanskyi](https://avatars.githubusercontent.com/u/17126482?v=4)](https://github.com/ikrynychanskyi "ikrynychanskyi (2 commits)")[![zebimax](https://avatars.githubusercontent.com/u/7349477?v=4)](https://github.com/zebimax "zebimax (1 commits)")[![AlexandrDmitriev](https://avatars.githubusercontent.com/u/6515146?v=4)](https://github.com/AlexandrDmitriev "AlexandrDmitriev (1 commits)")[![ignat-s](https://avatars.githubusercontent.com/u/335396?v=4)](https://github.com/ignat-s "ignat-s (1 commits)")[![kisakova](https://avatars.githubusercontent.com/u/22588947?v=4)](https://github.com/kisakova "kisakova (1 commits)")[![rgrebenchuk](https://avatars.githubusercontent.com/u/3358411?v=4)](https://github.com/rgrebenchuk "rgrebenchuk (1 commits)")[![ValeriyYustunyk](https://avatars.githubusercontent.com/u/6986327?v=4)](https://github.com/ValeriyYustunyk "ValeriyYustunyk (1 commits)")

---

Tags

requirejsBAP

### Embed Badge

![Health badge](/badges/oro-requirejs-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/oro-requirejs-bundle/health.svg)](https://phpackages.com/packages/oro-requirejs-bundle)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
