Загрузить статический файл JSON в Webpack
у меня где-то в моем коде следующую конструкцию:
var getMenu = function () {
return window.fetch("portal/content/json/menu.json").then(function (data) {
return data.json();
});
};
я попробовал в моем webpack.config.js
это:
module: {
loaders: [
...
{
test: /.json$/,
exclude: /node_modules/,
use: [
'file-loader?name=[name].[ext]&outputPath=portal/content/json'
]
},
...
]
}
структура проекта:
dist
content
json
menu.json <- this is missing
src
content
json
menu.json <- source file
вопрос:
как webpack копия src/content/json/menu.json
до dist/content/json/menu.json
?
1 ответов
вы используете fetch
запросить файл JSON, и это произойдет только во время выполнения. Кроме того, webpack обрабатывает только то, что импортировано. Вы ожидали, что он будет обрабатывать аргумент функции, но если webpack сделал это, каждый аргумент функции будет считаться модулем, и это нарушает любое другое использование этой функции.
если вы хотите, чтобы ваши погрузчики подействует, вы можете импортировать файл.
import './portal/content/json/menu.json';
вы также можете импортировать JSON и использовать его напрямую вместо извлечения его выполнения. Webpack 2 использует json-loader
по умолчанию для всех .json
файлы. Вы должны удалить .json
правило, и вы импортируете JSON следующим образом.
import menu from './portal/content/json/menu.json';
menu
- это тот же объект JavaScript, который вы получите от своего