2015-05-02 01:21:25 +02:00
|
|
|
.. raw:: html
|
|
|
|
|
|
|
|
<div id="banner"><a href="https://github.com/jcbrand/converse.js/blob/master/docs/source/builds.rst">Edit me on GitHub</a></div>
|
|
|
|
|
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
.. _builds:
|
|
|
|
|
|
|
|
===============
|
|
|
|
Creating builds
|
|
|
|
===============
|
2014-12-07 00:53:17 +01:00
|
|
|
|
|
|
|
.. contents:: Table of Contents
|
|
|
|
:depth: 3
|
|
|
|
:local:
|
|
|
|
|
|
|
|
|
|
|
|
.. warning:: There current documentation in this section does not adequately
|
|
|
|
explain how to create custom builds.
|
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
.. note:: Please make sure to read the section :doc:`development` and that you have installed
|
|
|
|
all development dependencies (long story short, you should be able to just run ``make dev``)
|
|
|
|
|
2016-02-28 10:00:22 +01:00
|
|
|
Creating builds and distribution files
|
|
|
|
======================================
|
2015-02-05 15:58:51 +01:00
|
|
|
|
2016-09-23 10:54:55 +02:00
|
|
|
Converse.js uses `AMD (Asynchronous Modules Definition) <http://requirejs.org/docs/whyamd.html#amd>`_
|
|
|
|
to define modules and their dependencies.
|
2015-02-05 15:58:51 +01:00
|
|
|
|
2016-09-23 10:54:55 +02:00
|
|
|
Dependencies can then be loaded on-the-fly with `require.js <http://requirejs.org>`_.
|
|
|
|
This is very useful during development, but when it comes to
|
2017-01-20 10:18:18 +01:00
|
|
|
deployement you'll usually want to create a single, minified distribution build.
|
2016-09-23 10:54:55 +02:00
|
|
|
|
|
|
|
For this, the `r.js optimizer <http://requirejs.org/docs/optimization.html>`_
|
|
|
|
is used together with `almond.js <https://github.com/requirejs/almond>`_, which
|
2017-01-20 10:18:18 +01:00
|
|
|
is a smaller and minimal AMD API implementation that replaces require.js in builds.
|
2016-09-23 10:54:55 +02:00
|
|
|
|
2017-01-20 10:18:18 +01:00
|
|
|
To create the distribution builds, simply run::
|
2015-02-05 15:58:51 +01:00
|
|
|
|
2016-02-28 10:00:22 +01:00
|
|
|
make dist
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
This command does the following:
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2016-09-23 10:54:55 +02:00
|
|
|
* It creates different builds of Converse.js in the ``./dist/`` directory.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
* It bundles all the translation files in ``./locale/`` into a single file ``locales.js``.
|
|
|
|
This file can then be included via the ``<script>`` tag. See for example the ``non_amd.html`` example page.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
* Also, the CSS files in the ``./css`` directory will be minified.
|
|
|
|
|
2016-09-23 10:54:55 +02:00
|
|
|
The Javascript build files are contained in the ``./dist`` directory:
|
2015-02-05 15:58:51 +01:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2016-02-28 10:00:22 +01:00
|
|
|
jc@conversejs:~/converse.js (master)$ ls dist/
|
2016-09-23 10:54:55 +02:00
|
|
|
converse-mobile.js converse.min.js
|
|
|
|
converse-mobile.min.js converse.nojquery.js
|
|
|
|
converse-no-dependencies.js converse.nojquery.min.js
|
|
|
|
converse-no-dependencies.min.js locales.js
|
|
|
|
converse.js
|
2015-02-05 15:58:51 +01:00
|
|
|
|
|
|
|
.. _`minification`:
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2017-01-20 10:18:18 +01:00
|
|
|
Creating custom builds
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
One reason you might want to create your own builds, is because you want to
|
|
|
|
remove some of the core plugins of converse.js, or perhaps you want to include
|
|
|
|
your own.
|
|
|
|
|
|
|
|
To add or remove plugins from the build, you need to modify the
|
|
|
|
``src/converse.js`` file.
|
|
|
|
|
|
|
|
You'll find a section marked ``/* START: Removable components`` and
|
|
|
|
``/* END: Removable components */``.
|
|
|
|
|
|
|
|
In this section is listed all the converse.js plugins that will make up a
|
|
|
|
build.
|
|
|
|
|
|
|
|
You could for example decide to disable the ControlBox altogether by removing
|
|
|
|
the ``converse-controlbox`` plugin.
|
|
|
|
|
|
|
|
After doing so, you need to run ``make dist`` again in the root or your
|
|
|
|
converse.js repository, in order to generate the new build.
|
|
|
|
|
|
|
|
Be aware that some plugins might have dependencies on other plugins, so if you
|
|
|
|
remove a certain plugin but other included plugins still depend on it, then it
|
|
|
|
will still be included in your build.
|
|
|
|
|
|
|
|
To see which other plugins a particular plugin depends on, open it up in your
|
|
|
|
text editor and look at the list specified as the second parameter to the
|
|
|
|
``define`` call, near the top of the file. This list specifies the dependencies
|
|
|
|
of that plugin.
|
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
Minifying the CSS
|
|
|
|
-----------------
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
To only minify the CSS files, nothing else, run the following command::
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
make cssmin
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2015-02-05 15:58:51 +01:00
|
|
|
The CSS files are minified via `cssmin <https://github.com/gruntjs/grunt-contrib-cssmin>`_.
|
2014-12-07 00:53:17 +01:00
|
|
|
|