2016-03-01 2 views
1

Я хотел бы добавить файлы JSON из удаленного места в свой пакет Webpack. Для этого я пишу загрузчик, который вытаскивает файлы из своего удаленного места в пакет.Webpack: Загрузите файл, который еще не существует в файловой системе

У меня ошибка при попытке сделать это. Есть ли способ переустановить ошибку «файл не найден», чтобы попытаться разрешить модуль против любых загрузчиков, которые он соответствует независимо от его существования?

Здесь ошибка:

*:81 
      throw stats.compilation.errors[0]; 
             ^
ModuleNotFoundError: Module not found: Error: Cannot resolve 'file' or 'directory' ../../../json/test.json in * 

ответ

3

Я не думаю, что вы можете сделать это с помощью погрузчиков - погрузчики применяются к источнику раз WebPack имеет его; если нет источника, он не может применить загрузчик. Если вы действительно хотите копать в нем, проверьте NormalModuleMixin.js (он находится в webpack-core/lib, что находится в webpack/node-modules).

Если вы действительно хотите сделать WebPack рассматривать этот ресурс как локальный файл, вы можете написать собственный распознаватель плагин, который будет идентифицировать require вызовов для удаленного ресурса, загрузить его, а затем пусть разрешение require продолжать один раз файла существует локально. Написание пользовательских разрешителей, к сожалению, более или менее недокументировано. Here's an issue, где @sokra указывает некоторые ссылки; Я нашел this plugin, в частности, чтобы быть хорошим примером того, как он работает.

Самый простой способ сделать то, что вы снимаете, может состоять в том, что Grunt/Gulp/сценарий оболочки вытащит файл перед выполнением сборки webpack.

+0

Это как можно ближе к ответу на этот вопрос, как я думаю, существует. В итоге я объединил плагин и загрузчик. – BTC

Смежные вопросы