Skip to main content

Simple tool to concatenate js files when changed.

Project description

Concat JS

PyPI - Version PyPI - Python Version


Table of Contents

Use case

This small app aim to provide automatic concatenation of javascript (or any other file) files. Typical use case is to combine sets of small js files and bundle then into one functionnal script for each «web page», and reduce the overhead of multiple web requests.

Installation

First of all install the app from PyPi

pip install django-concat-js

After installing the package, add concat_js in in your INSTALLED_APPS settings

INSTALLED_APPS = (
    ...
    'concat_js',
)

Settings

You need to configure the app before using it. It's done by adding a setting in your settings.py file

CONCAT_JS = {
    "JSON_DEPS": a Path to main JSON file,
    "CONCAT_ROOT": a Path,
    "CREATE_SOURCEMAPS": False,
    "LINT_COMMAND": False,
    "FILTER_EXTS": (".js", ),
    "LINT_BASE": False 
}

The main setting here is JSON_DEP which should point to a JSON file. It can be a Path or a string. This files contains a list of objects with following attributes

{
	"relative_to": "{BASE_DIR}/my_path/",
	"dest": "first_destination.js",
	"src": [
	    "src/first_source.js",
	    "src/second_source.js"
	]
}
  • relative_to is an optionnal string containing an absolute path to a directory. All other path in this object are considered relative to this directory. Defaults to CONCAT_ROOT (see below). You can use BASE_DIR (defined in django default settings.py file) or CONCAT_ROOT as format placeholder.
  • src is a list of relative path to files to be concatenated. The result is in....
  • dest is the relative path to the concatenated file.

If you want to, you can name each bundle and use the more verbose

[
	"my_wonderful_name",
	bundle_spec
]

where bundle_spec is an object described above.

Other settings

  • CONCAT_ROOT is a Path or string setting. See aboce for meaning. It defaults to BASE_DIR
  • CREATE_SOURCEMAP is a boolean, which defaults to False. If True, each bundling will also create a sourcemap file named {dest}.map
  • LINT_COMMAND must be False or a command string used to invoke a linter for each file before concatenation.
  • FILTER_EXTS is an iterable of extension strings which defaults to the tuple (".js", ). Only files with given extensions will be watched for changes.
  • LINT_BASE is either False (the default) or a path to a directory. Files in this directory will be linted just before watching for changes.

## Usage

Once configured, you can watch for changed files with

python manage.py watch_js

License

django-concat-js is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_concat_js-0.3.2.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_concat_js-0.3.2-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file django_concat_js-0.3.2.tar.gz.

File metadata

  • Download URL: django_concat_js-0.3.2.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.23.3

File hashes

Hashes for django_concat_js-0.3.2.tar.gz
Algorithm Hash digest
SHA256 735dc2fc8311ce8ba94a91ca4e228a835e2cb3ffd99c50a215c6c7b908b80c33
MD5 6306bd519824e6bcb0788502dc9406c1
BLAKE2b-256 9ed0aae97c35a520c584e29bac7ea00a1a7501517d077249dff16d064b4dc05b

See more details on using hashes here.

File details

Details for the file django_concat_js-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_concat_js-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 851d027af7a148128a33a976d8c3f789b865e562369b010602bb20ecc517f299
MD5 fae001422d027e6baf98dc90e849f530
BLAKE2b-256 721a11b4d9037bf38f1031f8c7ff7cb7793641170297e64b73253fe8bcc4432b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page