Skip to main content

A django compressor tool which bundles css, js files to single css, js file with webpack

Project description

django-webpacker’s documentation:

Documentation Status https://coveralls.io/repos/github/MicroPyramid/django-webpacker/badge.svg?branch=master Code Health https://img.shields.io/github/license/micropyramid/django-simple-forum.svg

Introduction:

django-webpacker is a django compressor tool which bundles css, js files to a single css, js file with webpack and updates your html files with respective css, js file path.

It supports django-storages to load compressed files from AWS S3.

Source Code is available in Micropyramid Repository(https://github.com/MicroPyramid/django-webpacker).

Installation Procedure

  1. Install django-web-packer using the following command:

    pip install django-webpacker
    
                (or)
    
    git clone git://github.com/micropyramid/django-webpacker.git
    
    cd django-webpacker
    
    python setup.py install
  2. Add app name in project settings.py file:

    INSTALLED_APPS = [
       '..................',
       'django-webpacker',
       '..................'
    ]
  3. Run npm init to intialize npm modules and it will create ‘package.json’ file which will contain package information. Update file with following dependencies:

    "devDependencies": {
       "babel": "^6.23.0",
       "babel-core": "^6.24.0",
       "babel-loader": "^6.4.1",
       "css-loader": "^0.28.0",
       "extract-text-webpack-plugin": "^2.1.0",
       "file-loader": "^0.11.1",
       "html-webpack-inline-source-plugin": "0.0.7",
       "html-webpack-plugin": "^2.28.0",
       "image-webpack-loader": "^3.3.0",
       "less-loader": "^4.0.3",
       "node-sass": "^4.5.2",
       "react": "^15.4.2",
       "react-hot-loader": "^1.3.1",
       "sass-loader": "^6.0.3",
       "script-loader": "^0.7.0",
       "style-loader": "^0.16.1",
       "webpack": "^2.3.3",
       "webpack-bundle-tracker": "^0.2.0",
       "webpack-dev-server": "^2.4.2"
     },
     "dependencies": {
       "imports-loader": "^0.7.1",
       "jquery": "^3.2.1"
     }
  4. Run npm install to install all package dependencies.

    npm install

  5. Updates Your html file with the following script, link stylesheet tags.

    <link rel=”stylesheet” type=”text/css” href=”” id=”packer_css”/>

    <script id=”packer_js” src=”” type=”text/javascript”></script>

  6. Create webpack.config.js file with webpack.config.js file data. Update your project entry points with their respective paths. We can give multiple entry points(i.e separate entry point for each app) for the project. After compressing, separate css, file will be genarated with respective entry point name.

  7. Add the following details in settings file about compressing css, js files:

    WEB_PACK_FILES = [
        {'html_file_name': {{ HTML_FILE_RELATIVE_PATH }},
         'webpack_js': {{ WEBPACK_ENTRY_POINT_KEY_NAME }},
        },
        {'html_file_name': {{ HTML_FILE_RELATIVE_PATH }},
         'webpack_js': {{ WEBPACK_ENTRY_POINT_KEY_NAME }},
         },
        {'html_file_name': {{ HTML_FILE_RELATIVE_PATH }}',
         'webpack_js': {{ WEBPACK_ENTRY_POINT_KEY_NAME }},
         },
    ]
  8. Run python manage.py compress_css_js_files to generate compressed css, js file. It will updates html file with respective compressed css, js files. Link, script tags will be loaded with compressed css, js files.

  9. If you use django storages, then add the following variable to settings file to load compressed css, js files from s3.

    # AWS details

    AWS_ACCESS_KEY_ID = “Your AWS Access Key”

    AWS_SECRET_ACCESS_KEY = “Your AWS Secret Key”

    AWS_BUCKET_NAME = “Your AWS Bucket Name”

    ENABLE_DJANGO_WEBPACK_AWS = True

Modules used:

  • Django = 1.9.6

We are always looking to help you customize the whole or part of the code as you like.

Visit our Django Development page Here

We welcome your feedback and support, raise github ticket if you want to report a bug. Need new features? Contact us here

or

mailto:: “hello@micropyramid.com

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-webpacker-0.1.1.tar.gz (4.7 kB view details)

Uploaded Source

File details

Details for the file django-webpacker-0.1.1.tar.gz.

File metadata

File hashes

Hashes for django-webpacker-0.1.1.tar.gz
Algorithm Hash digest
SHA256 24efdafb35ab1c2c5616ef91cca3dd3cd3cb9079b4a17db5519810fdf262e030
MD5 e1fd2a8cf004fe87e3765e3e365f7fb2
BLAKE2b-256 0e7ead0ab6243883b1b4488302d41944e0a87ce1711416c2c52e89b8c3f3309f

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