Значение исключения: строковые индексы должны быть целыми числами: ошибка пакета визуализации vue + django - PullRequest
3 голосов
/ 09 апреля 2020

я использую загрузчик webpack для вставки моего vue приложения в django, вот код:

Настройки:

WEBPACK_LOADER = {
'DEFAULT':{
    'BUNDLE_DIR_NAME':'/',
    'STATS_FILE':os.path.join(BASE_DIR,'aptim-frontend/dist','webpack-stats.json')

}}

vue файл конфигурации:

const BundleTracker = require("webpack-bundle-tracker"); 
module.exports = {
  // on Windows you might want to set publicPath: "http://127.0.0.1:8080/"
  publicPath: "http://0.0.0.0:8080/",
  outputDir: "./dist/",

  chainWebpack: (config) => {
    config.optimization.splitChunks(false);

config
  .plugin("BundleTracker")
  .use(BundleTracker, [{ filename: "../frontend/webpack-stats.json" }]);

config.resolve.alias.set("__STATIC__", "static");

config.devServer
  .public("http://0.0.0.0:8080")
  .host("0.0.0.0")
  .port(8080)
  .hotOnly(true)
  .watchOptions({ poll: 1000 })
  .https(false)
  .headers({ "Access-Control-Allow-Origin": ["*"] });},};

И строка html, где я получаю ошибку, находится в индексе html

 {% render_bundle 'app' %}

ОШИБКА: Значение исключения: строковые индексы должны быть целыми числами

Ответы [ 4 ]

0 голосов
/ 22 апреля 2020

Значение исключения: строковые индексы должны быть целыми числами

Я тоже получил эту странную ошибку, подтвердил снижение до webpack-bundle-tracker@0.4.3, работает.

0 голосов
/ 12 апреля 2020

Та же проблема. Конфигурация ниже работала для меня

  • webpack-bundle-tracker@0.4.3
  • django -webpack-loader == 0.6.0
0 голосов
/ 13 апреля 2020

Downgrade Webpack-bundle-tracker, как сообщает @ Frans

npm install --save-dev webpack-bundle-tracker@0.4.3

In vue.config.js

config
    .plugin('BundleTracker')
    .use(BundleTracker, [{filename: './webpack-stats.json'}])

Затем удалите папку dist со старым webpack-stats.json

В этой версии и с этой конфигурацией webpack-stats.json файл генерируется в frontend, а не в frontend/dist Поэтому вы должны изменить STATS_FILE в settings.py (например, если ваш проект Vue равен frontend)

'STATS_FILE': os.path.join(BASE_DIR, 'frontend','webpack-stats.json'),

Затем перезапустите Vue и Django веб-серверы.

0 голосов
/ 10 апреля 2020

У меня была та же проблема в отличном курсе Удеми Полное руководство по Django REST Framework и Vue JS. Вы, вероятно, не можете прочитать ответ от Микеле Саба, если вы не подписаны.

Вероятно, это как-то связано с версиями пакетов и их альфа-версией. Понижение до

  • webpack-bundle-tracker@0.4.3
  • django -webpack-loader == 0.7.0

работало для меня. Понижение рейтинга с помощью:

npm install --save-dev webpack-bundle-tracker@0.4.3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...