mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-08-06 05:00:18 +03:00
Document Gulp-Docker integration
This commit is contained in:
parent
dcab412641
commit
6e6ada4201
76
docs/gulp-with-docker.rst
Normal file
76
docs/gulp-with-docker.rst
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
Gulp with Docker
|
||||||
|
================
|
||||||
|
|
||||||
|
.. index:: gulp, gulpjs, gulpfile, gulpfilejs, docker, docker-compose
|
||||||
|
|
||||||
|
`Gulp`_ support is provided out-of-the-box, ready for use as-is, or with any kind of customizations suiting the specific needs of the project.
|
||||||
|
|
||||||
|
.. _`Gulp`: http://gulpjs.com/
|
||||||
|
|
||||||
|
*All paths are relative to the generated project's root.*
|
||||||
|
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- These :ref:`nodewithdocker-prereq` are satisfied.
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
--------
|
||||||
|
|
||||||
|
:ref:`nodewithdocker-overview` Node.js integration details first to get the whole picture.
|
||||||
|
|
||||||
|
Essential aspects of Gulp integration are
|
||||||
|
|
||||||
|
- :code:`./gulpfile.js` with Gulp tasks defined;
|
||||||
|
- :code:`./{{ cookiecutter.project_slug }}/static/build/` (build directory) with static assets built via Gulp.
|
||||||
|
|
||||||
|
Let us take a closer look at :code:`./gulpfile.js`:
|
||||||
|
|
||||||
|
- paths to static assets are provided by :code:`pathsConfig()`;
|
||||||
|
- for clarity, related tasks are grouped by :code:`region`:
|
||||||
|
- :code:`images`:
|
||||||
|
- :code:`images`: run image-related tasks in parallel, namely:
|
||||||
|
- :code:`favicons-images`: process favicon images only;
|
||||||
|
- :code:`nonfavicons-images`: process all images except for favicons.
|
||||||
|
- :code:`scripts`:
|
||||||
|
- :code:`scripts`: run script-related tasks in sequence, namely:
|
||||||
|
- :code:`js-scripts`: process js scripts.
|
||||||
|
- :code:`styles`:
|
||||||
|
- :code:`styles`: run script-related tasks in sequence, namely:
|
||||||
|
- :code:`sass-styles`: process SCSS styles;
|
||||||
|
- :code:`css-styles`: process CSS styles.
|
||||||
|
- :code:`build`:
|
||||||
|
- :code:`build`: run :code:`images`, :code:`scripts`, and :code:`styles` in parallel;
|
||||||
|
- :code:`clean-build`: clean up build directory:
|
||||||
|
- the :code:`default` task runs the following ones in sequence:
|
||||||
|
- :code:`build`;
|
||||||
|
- :code:`init-browserSync`: initialize `BrowserSync`_;
|
||||||
|
- :code:`watch`: watch static asset files/directories changes, running BrowserSync on any changes.
|
||||||
|
|
||||||
|
.. _`BrowserSync`: https://www.browsersync.io/
|
||||||
|
|
||||||
|
|
||||||
|
Workflow
|
||||||
|
--------
|
||||||
|
|
||||||
|
#. [*skip if done*] :ref:`devlocdocker-build-the-stack`;
|
||||||
|
#. :ref:`devlocdocker-boot-the-system`.
|
||||||
|
|
||||||
|
By default, :code:`gulp` command gets executed immediately after :code:`node`
|
||||||
|
container startup (see :code:`./dev.yml` for details) which in turn invokes
|
||||||
|
the :code:`default` task, so generally one would not need to run any
|
||||||
|
of the aforementioned tasks manually. However, should the need arise,
|
||||||
|
oftentimes just a few of the tasks listed above will be used to, for instance,
|
||||||
|
straightforwardly :code:`build` all assets
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ docker-compose -f dev.yml exec node gulp build
|
||||||
|
|
||||||
|
or build :code:`scripts` selectively
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ docker-compose -f dev.yml exec node gulp scripts
|
|
@ -18,6 +18,7 @@ Contents:
|
||||||
settings
|
settings
|
||||||
linters
|
linters
|
||||||
nodejs-with-docker
|
nodejs-with-docker
|
||||||
|
gulp-with-docker
|
||||||
live-reloading-and-sass-compilation
|
live-reloading-and-sass-compilation
|
||||||
deployment-on-pythonanywhere
|
deployment-on-pythonanywhere
|
||||||
deployment-on-heroku
|
deployment-on-heroku
|
||||||
|
|
|
@ -7,9 +7,11 @@ Node.js with Docker
|
||||||
|
|
||||||
.. _`Node.js`: https://nodejs.org/en/
|
.. _`Node.js`: https://nodejs.org/en/
|
||||||
|
|
||||||
*Note, all paths given are relative to the generated project's root.*
|
*All paths are relative to the generated project's root.*
|
||||||
|
|
||||||
|
|
||||||
|
.. _nodewithdocker-prereq:
|
||||||
|
|
||||||
Prerequisites
|
Prerequisites
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -17,10 +19,12 @@ Prerequisites
|
||||||
- These :ref:`devlocdocker-prereq` are met as well.
|
- These :ref:`devlocdocker-prereq` are met as well.
|
||||||
|
|
||||||
|
|
||||||
|
.. _nodewithdocker-overview:
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Essential aspects of integration are
|
Essential aspects of Node.js integration are
|
||||||
|
|
||||||
- node docker-compose service (:code:`node`) definition in :code:`./dev.yml`;
|
- node docker-compose service (:code:`node`) definition in :code:`./dev.yml`;
|
||||||
- :code:`./compose/node/Dockerfile-dev` defining the :code:`node` image;
|
- :code:`./compose/node/Dockerfile-dev` defining the :code:`node` image;
|
||||||
|
@ -30,7 +34,7 @@ Essential aspects of integration are
|
||||||
Workflow
|
Workflow
|
||||||
--------
|
--------
|
||||||
|
|
||||||
#. :ref:`devlocdocker-build-the-stack`:
|
#. [*skip if done*] :ref:`devlocdocker-build-the-stack`:
|
||||||
- when building :code:`node` image from scratch, dependencies from :code:`package.json` are installed.
|
- when building :code:`node` image from scratch, dependencies from :code:`package.json` are installed.
|
||||||
#. :ref:`devlocdocker-boot-the-system`.
|
#. :ref:`devlocdocker-boot-the-system`.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user