Настройка Django и Webpack Dev Server - PullRequest
0 голосов
/ 17 июня 2019

Я настраиваю Django с Webpack Dev Server и с трудом заставляю все работать вместе.

Мне удалось заставить приложение Djano обслуживать статические файлы js, создаваемые сервером разработки webpack, но нет перезагрузки в реальном времени, и я также получаю странную ошибку sockjs 404 ...

В моем settings.py у меня есть это:

STATIC_ROOT = os.path.join(PUBLIC_DIR, 'static')
STATIC_URL = 'http://127.0.0.1:8080/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'dist'), # We do this so that django's collectstatic copies or our bundles to the STATIC_ROOT or syncs them to whatever storage we use.
)

WEBPACK_LOADER = {
    'DEFAULT': {
        'CACHE': not DEBUG,
        'BUNDLE_DIR_NAME': '', # must end with slash
        'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json'),
        'POLL_INTERVAL': 0.1,
        'TIMEOUT': None,
        'IGNORE': ['.+\.hot-update.js', '.+\.map']
    }
}

и мой конфиг веб-пакета выглядит так:

var path = require('path');
var webpack = require('webpack');
var BundleTracker = require('webpack-bundle-tracker');

module.exports = {
  context: __dirname,
  entry: './djangowebpack/static/js/index.js',
  plugins: [
    new BundleTracker({filename: './webpack-stats.json'})
  ]
}

Я не указал выходной путь, поэтому он просто создает папку dist в корне.

Я использую webpack-загрузчик для передачи его моим шаблонам следующим образом:

{% load render_bundle from webpack_loader %}


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

    <h1 id="lol"></h1>
    {% render_bundle 'main' 'js' 'DEFAULT' %}
</body>
</html>

Было бы здорово узнать, есть ли здесь какие-либо очевидные ошибки ... большое спасибо.

...