Импортируйте файл JSON в Javascript, используя Webpack 4 - PullRequest
0 голосов
/ 18 марта 2019

У меня есть файл с именем generic-map.json, содержащий следующее:

[
    {
        "names": ["text", "description"],
        "map": {
            "name": "textContent",
            "target": "property",
            "type": "string"
        }
    },
    {
        "names": ["checked"],
        "map": {
            "name": "checked",
            "target": "property",
            "type": "boolean"
        }
    },
    {
        "names": ["disabled", "readonly"],
        "map": {
            "name": "disabled",
            "target": "property",
            "type": "boolean"
        }
    },
    {
        "names": ["title", "tooltip"],
        "map": {
            "name": "title",
            "target": "property",
            "type": "string"
        }
    },
    {
        "names": ["cssclass", "classname"],
        "map": {
            "name": "",
            "target": "classList",
            "type": "string"
        }
    },
    {
        "names": ["tabindex"],
        "map": {
            "name": "tabIndex",
            "target": "attribute",
            "type": "string"
        }
    }
]

В файле Javascript я пытаюсь импортировать этот файл:

import generic from './generic-map.json';

Webpack дает мне следующую ошибку :

./src/utils/property-mapping/generic-map.json
Module parse failed: Unexpected token ; in JSON at position 733 while parsing near '...type": "string" } }];'
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token ; in JSON at position 733 while parsing near '...type": "string" } }];'
    at JSON.parse (<anonymous>)

Я знаю, что веб-пакету больше не нужен json-loader, начиная с версии 2.0.0. Я использую Webpack 4.20.2 .

Вот так выглядит конфигурация моих загрузчиков:

[{
    test: /(\.js)/,
    exclude: /(node_modules)/,
    loaders: ['babel-loader'],
}, {
    test: /(\.jpg|\.png)$/,
    loader: 'url-loader?limit=10000',
}]

1 Ответ

2 голосов
/ 18 марта 2019

Заменить test: /(\.js)/ на test: /\.js$/ или test: /\.jsx?$/

babel-loader обрабатывает файл .json из-за неправильного выражения теста.

...