Как загрузить json через загрузчик файлов webpack? - PullRequest
0 голосов
/ 20 сентября 2019

Мне нужно загрузить несколько файлов json через file-loader, а затем во время выполнения загрузить и проанализировать их через другую библиотеку, но веб-пакет переносит файл json в js, добавляя 'module.exports =... в начале файла.

Этот конфигвыдает ошибку во время сборки:

{
  include: ASSETS_SOURCE_PATH,
  use: {
    loader: 'file-loader',
    options: {
      name: '[path][name].[ext]',
    },
  },
},
ERROR in ./src/assets/map/map.json
Module parse failed: Unexpected token m in JSON at position 0 while parsing near 'module.exports = __w...'
File was processed with these loaders:
 * ./node_modules/file-loader/dist/cjs.js
You may need an additional loader to handle the result of these loaders.
SyntaxError: Unexpected token m in JSON at position 0 while parsing near 'module.exports = __w...'

И если я изменяю конфигурацию на эту, я улавливаю эту ошибку при разборе json во время выполнения:

{
  test: /\.json$/,
  type: 'javascript/auto',
  include: ASSETS_SOURCE_PATH,
  use: {
    loader: 'file-loader',
    options: {
      name: '[path][name].[ext]',
    },
  },
},
{
  include: ASSETS_SOURCE_PATH,
  use: {
    loader: 'file-loader',
    options: {
      name: '[path][name].[ext]',
    },
  },
},

Содержимое этого файла module.exports = __webpack_public_path__ + "assets/map/map.json";

UPD: синтаксис import mapTilesJson from '!!file-loader!assets/map/map.json' работает нормально, но может нарушать машинопись.Есть ли способ достичь того же эффекта в конфигурации webpack, а не в строке?

...