Skip to main content

Flask extension to serve Webpack bundles

Project description

Flask-Bundler

Flask-Bundler allows you to serve your project assets from Webpack directly, allowing cache busting and easy deployment.

It uses Webpack's BundleTracker plugin to get information about the bundles in your configuration and to serve them.

Installation

You need to configure Webpack to output webpack-stats.json. For this, add webpack-bundle-tracker as a Node dependency to your project and in your webpack.config.js add:

const BundleTracker = require("webpack-bundle-tracker");
// ...
module.exports = {
    // ...
    plugins: [
        // ...
        new BundleTracker({
            filename: "./myapp/static/webpack-stats.json"
        }),
        // ...
    ],
    // ...
};

You can place the webpack-stats.json file anywhere in the application. By default Flask-Bundler will check for webpack-stats.json inside the application's static folder.

Afterwards, just initialize Flask-Bundler like you would with any extension.

Normal initialization

from flask import Flask
from flask_bundler import Bundler

app = Flask(__name__)
# ...
bundler = Bundler(app)

Application factory initialization

from flask import Flask
from flask_bundler import Bundler

bundler = Bundler()

def create_app():
    app = Flask(__name__)
    # ...
    bundler.init_app(app)
    # ...
    return app

Bundler options

When initializing Bundler, you can specify a few options.

stats_file

Path to the webpack-stats.json. Defaults to {app.static_folder}/webpack-stats.json.

custom_renderers

A dictionary of custom renderers. str.format will be called on the given string with the public path of the asset as the only parameter. The default renderers are css and js, but additional renderers can be passed if your application contains other types of outputs.

strict

If True, an error will be raised in exceptional situations. Otherwise, a warning will be issued and the empty string will be returned for the bundle.

License

© Efe Mert Demir 2020. This software is licensed under the BSD 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

Flask-Bundler-1.0.2.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

Flask_Bundler-1.0.2-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file Flask-Bundler-1.0.2.tar.gz.

File metadata

  • Download URL: Flask-Bundler-1.0.2.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for Flask-Bundler-1.0.2.tar.gz
Algorithm Hash digest
SHA256 98bb5ef95601a083104cd0c1eab8cf98931792bbbb8adab65e5d6bfeb8abc8b6
MD5 2fb45c089341dd2b85ffb388908470e3
BLAKE2b-256 979e4781bb9627c59985f0038a329671ad9fc36e0583b273f41242efbb2318a4

See more details on using hashes here.

File details

Details for the file Flask_Bundler-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: Flask_Bundler-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for Flask_Bundler-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d95e2042cdef77e3abe93ed7cbf1037c972f8d5457f5e5002cb2b91bc753aa2e
MD5 6468d93d17c8bd8bca3230f8377e6a84
BLAKE2b-256 3191ae92abe6300d183d14130967a69fb5c4de7f3f4d9abf03f03b936fb2f69a

See more details on using hashes here.

Supported by

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