.json данные отображаются на сервере webpack, но не производственная сборка

Ответ администратора Адама Дэвиса прекрасен, но на всякий случай вы так же невежественны, как я о Excel VBA, вот что я сделал, чтобы получить код, работающий в Excel 2007:

  1. Открыть рабочую книгу с матрицей, которая должна быть сплющена к таблице и перейти к этому листу
  2. Нажмите Alt-F11, чтобы открыть редактор кода VBA.
  3. На левой панели в Project box, вы увидите древовидную структуру, представляющую объекты excel и любой код (называемые модулями), которые уже существуют. Щелкните правой кнопкой мыши в любом месте окна и выберите «Вставить-> Модуль», чтобы создать пустой файл модуля.
  4. Скопируйте и вставьте код @Adman Davis сверху, как на пустой странице, откроется и сохраните его.
  5. Закройте окно редактора VBA и вернитесь к электронной таблице.
  6. Нажмите на любую ячейку в матрице, чтобы указать матрицу, с которой вы будете работать.
  7. Теперь вам нужно запустить макрос. Если этот параметр будет зависеть от вашей версии Excel. Поскольку я использую 2007, я могу сказать вам, что он сохраняет свои макросы в ленте «Просмотр» как самый правый правый элемент управления. Щелкните по нему, и вы увидите список макросов для стирки, просто дважды щелкните по названию «ReversePivotTable», чтобы запустить его.
  8. Затем появится всплывающее окно с просьбой указать, где можно создать сплющенный Таблица. Просто укажите его на любое пустое пространство вашей электронной таблицы и нажмите «ok»

. Все готово! Первый столбец будет строками, второй столбец будет столбцом, третьим столбцом будут данные.

1
задан Edwin 14 July 2018 в 00:08
поделиться

1 ответ

У вас, кажется, есть некоторые заблуждения относительно того, что делает file-loader. file-loader, конечно, копирует файлы в ваш каталог dist, но он копирует файлы только через , если они загружаются кодом . В настоящее время webpack не знает, что файл существует. Если вы выполнили require('./some.json') (или импорт), это вызовет загрузчик файлов и заменит URL. В коде, который выполняет выборку, замените:

var url = "/src/assets/data/main.json";

... на:

var url = require('../assets/data/main.json');

... и это сделает правильную перезапись / вывод.

Обновление:

Вам также нужен дополнительный шаг. Webpack 4 по умолчанию включает содержимое файла JSON в вашем пакете JS, которое вам не нужно, так как вы хотите загрузить . Чтобы обойти это, я добавил правило к вашему webpack.common.js:

module.exports = {
  // ...
  module: {
    rules: [
      // ...Right before your file-loader rule
      // Bypass automatic `.json` file processing for webpack
      {
        type: 'javascript/auto',
        test: /\.json$/,
        loader: 'file-loader',
        options: {
          name: '[name].[ext]',
          outputPath: './assets'
        }
      },
      // Second file loader. note the removal of the `json` pattern
      {
        test: /\.(png|jpg|gif|eot|ttf|woff|woff2)$/,
        loader: 'file-loader',
        options: {
          name: '[name].[ext]',
          outputPath: './assets'
        }
      }
    ],
    // ...
  }
  // ...
};

... и теперь требуется триггеры .json файлов file-loader.

0
ответ дан Jacob 17 August 2018 в 12:07
поделиться
  • 1
    Протестировано, но что-то еще не так, когда webpack обрабатывает файлы JSON. Исследуя ... – Jacob 14 July 2018 в 00:34
  • 2
  • 3
    Выясните остальные, см. Обновление. – Jacob 14 July 2018 в 00:45
  • 4
    Я вижу сейчас! Имеет смысл, что я должен сделать это, так как я хочу загрузить файлы, а не включать его в пакет JS. Большое вам спасибо за помощь! – Edwin 14 July 2018 в 00:51
  • 5
    Га, я прыгнул с пистолета ... файл JSON скопирован, но это не JSON, а вместо него некоторый контент JS. – Jacob 14 July 2018 в 00:56
Другие вопросы по тегам:

Похожие вопросы: