Simple tool to concatenate js files when changed.
Project description
Concat JS
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 toCONCAT_ROOT
(see below). You can useBASE_DIR
(defined in django defaultsettings.py
file) orCONCAT_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 aPath
or string setting. See aboce for meaning. It defaults toBASE_DIR
CREATE_SOURCEMAP
is a boolean, which defaults toFalse
. IfTrue
, each bundling will also create a sourcemap file named{dest}.map
LINT_COMMAND
must beFalse
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 eitherFalse
(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
Built Distribution
Hashes for django_concat_js-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 399c739703057cd9d39612b976dae5af488ec7634f69e0a68370db3dea7adb74 |
|
MD5 | 21d3ac0c702fe62ae1f5db399ebfb0a0 |
|
BLAKE2b-256 | 755df775d242aca43700e7e95f6e3c3611fee9bae700af65d8fcf11f4e58efdf |