Я работаю над приложением, в котором у меня есть файлы конфигурации, которые содержат ряд настраиваемых параметров, которые передаются в мое приложение в различных местах (например, статический текст, слои карты и т. Д.). В настоящее время в моем процессе веб-пакета эти файлы конфигурации объединяются в процессе build
и больше не редактируются после развертывания. Я бы хотел избежать создания сборок для таких изменений конфигурации.
В настоящее время я использую webpack file-loader
, чтобы поместить все мои ресурсы (только svgs на данный момент) в их собственную папку во время процесса сборки, и они полностью доступны для редактирования. Я могу поменять в этой папке все, что захочу, и эти изменения будут учтены в сборке. Я чувствую, что могу сделать то же самое с моими конфигурационными файлами. Следуя структуре моей функциональности изображений, я написал точно такой же код для обработки моей конфигурации. Однако, когда я пытаюсь запустить сборку, я получаю сообщение об ошибке, из-за которого не могу прочитать свои конфигурации, где я импортировал их в свое приложение React. Я чувствую, что я делаю те же самые вещи с этими файлами конфигурации, как и с моими изображениями, поэтому я не уверен, в чем дело.
Файл деталей Webpack (где существуют функции для использования в dev / prod)
exports.loadImages = ({ include, exclude, options } = {}) => ({
module: {
rules: [
{
test: /\.(png|jpg|svg)$/,
include,
exclude,
use: {
loader: 'file-loader',
options,
},
},
],
},
});
exports.loadConfig = ({ include, exclude, options } = {}) => ({
module: {
rules: [
{
test: /^..*\/(config\/)..*\.js$/,
include,
exclude,
use: {
loader: 'file-loader',
options,
},
},
],
},
});
Производственный файл Webpack (часть того, что запускается в процессе сборки)
parts.loadImages({
include: PATHS.app, //root level
options: {
limit: 15000,
name: 'assets/[name].[ext]',
},
}),
parts.loadConfig({
include: PATHS.app, //root level
options: {
limit: 15000,
name: 'config/[name].[ext]',
},
}),
В настоящее время мои изображения загружаются в мою папку сборки и загружаются в приложение должным образом. Если я изменяю их каким-либо образом, по форме или по форме, изменения отображаются в сборке, поэтому я предполагаю, что это означает, что они не связаны.
Исходя из этой логики, я бы предположил, что я настроил свой loadConfig таким же образом. В настоящее время он копирует файлы в процесс сборки, но когда я запускаю сборку, я получаю сообщение о том, что конфигурация не найдена (точнее, я пытаюсь перебрать свойства внутри конфигурации, используя forEach()
и Cannot read property 'forEach' of undefined
). Это говорит о том, что он не загружается в сборку (плохо), но также не связывается в процессе сборки (хорошо).