===========
PyWebpack
.. image:: https://github.com/inveniosoftware/pywebpack/workflows/CI/badge.svg
:target: https://github.com/inveniosoftware/pywebpack/actions?query=workflow%3ACI
.. image:: https://img.shields.io/coveralls/inveniosoftware/pywebpack.svg
:target: https://coveralls.io/r/inveniosoftware/pywebpack
.. image:: https://img.shields.io/github/tag/inveniosoftware/pywebpack.svg
:target: https://github.com/inveniosoftware/pywebpack/releases
.. image:: https://img.shields.io/pypi/dm/pywebpack.svg
:target: https://pypi.python.org/pypi/pywebpack
.. image:: https://img.shields.io/github/license/inveniosoftware/pywebpack.svg
:target: https://github.com/inveniosoftware/pywebpack/blob/master/LICENSE
Webpack integration layer for Python.
Using Flask? Check out
Flask-WebpackExt <https://flask-webpackext.readthedocs.io>
_.
PyWebpack makes it easy to interface with your existing Webpack project and
does not try to manage Webpack for you. PyWebpack does this via:
- Manifests: You tell Webpack to write a
manifest.json
using plugins
such as webpack-manifest-plugin <https://www.npmjs.com/package/webpack-manifest-plugin>
,
webpack-yam-plugin <https://www.npmjs.com/package/webpack-yam-plugin>
or
webpack-bundle-tracker <https://www.npmjs.com/package/webpack-bundle-tracker>
_. PyWebpack
reads the manifest and makes your compiled assets available to your template
engine such as Jinja. - API for NPM: PyWebpack provides an API so that e.g.
project.install()
will run npm install
in your Webpack project.
Optionally you can use PyWebpack to also:
- Inject configuration: PyWebpack will write a
config.json
into
your webpack project, which you can import in your webpack configuration. You
can define what goes in the config e.g. let webpack know about output paths or
dynamic entry points. - Collect bundles: If your Webpack project is spread over multiple Python
packages, PyWebpack can help you dynamically assemble the files into a
Webpack project. This is useful if you don't know until build time which
packages are installed.
Further documentation is available on
https://pywebpack.readthedocs.io/
Changes
Version 2.1.0 (released 2024-11-26)
- Add a copy func to copy assets from a directly to another. It validates the from/to
path to sandbox the copy locations.
Version 2.0.1 (released 2024-09-20)
- Removes implicit dependency on setuptools and use importlib-metadata instead of the
deprecated pkg_resources module
Version 2.0.0 (released 2024-03-04)
- Removes dependency on node-semver package
- Changes the NPM dependencies merging algorithm to fail when conflicting
major versions of the same package are found.
Version 1.2.0 (released 2021-01-21)
- Fixes an issue where if you were using WebpackBundleProject with
the LinkStorage to make symlinks, you would end up having your source
package.json overwritten.
Version 1.1.0 (released 2020-05-25)
- Adds support for collecting aliases from bundles.
- Restore Python 2 compatibility.
Version 1.0.4 (released 2020-05-25)
- Python commands now fail when the NPM processes exit with an error.
Version 1.0.3 (released 2020-05-12)
- Fixes issue with incorrect parsing of webpack-bundle-tracker manifests.
Version 1.0.2 (released 2020-04-28)
- Adds a
depth
parameter to LinkStorage to allow for higher level
symlinking on the folder-level.
Version 1.0.1 (released 2020-02-14)
- Adds support for having bundles that are callables in
bundles_from_entry_point.
Version 1.0.0 (released 2018-10-29)
- Adds documentation and extra tests.
Version 0.1.2 (released 2017-11-06)
- Fix invalid closing of tag.
Version 0.1.1 (released 2017-05-29)
- Fix problem with package.json not being updated.
- Fix merging of package.json dependencies.
- Increase test coverage.
Version 0.1.0 (released 2017-05-16)