2015-04-09 2 views
0

Я работаю с очень большой базой модулей JS (для интерфейсного кода), в которой используются определения стиля AMD. Они, как правило, выглядят следующим образом:Лучший способ заставить Webpack управлять Quirky AMD Определяет

define('TwitterModule', [ 
    'vendor/jquery/jquery', 
    'vendor/moment/moment', 
    'vendor/jquery/jquery.ie.cors' 
], function ($, moment) { 
... 

Проблема заключается в том, что объявления зависимостей фактически не представляют, где эта зависимость. Они будут выглядеть примерно так без разрешения каталога магии:

define('TwitterModule', [ 
    __dirname + '/vendor/jquery/content/scripts/jquery', 
    __dirname + '/vendor/moment/content/scripts/moment', 
    __dirname + '/vendor/jquery/content/scripts/jquery.ie.cors' 
], function ($, moment) { 
... 

Так что я пытаюсь выяснить чистый способ решения этих проблем каталогов. А именно, определите корневой путь, а также добавьте часть «/ content/scripts» в пути, которые получает веб-пакет. Webpack Resolve и Webpack Shims выглядят так, как будто они могут решить эту проблему, но я ищу отзывы от тех, у кого есть опыт в решении странных определений AMD, чтобы сосредоточить внимание на наилучшем возможном решении.

ответ

0

Не удалось отобразить vendor в группе веб-пакета?

+0

У меня пока нет много опыта работы с webpack, но да, я мог бы решить проблему с корневым путём с помощью конфигурации разрешения. Часть, которая немного более проблематична, заключается в том, что мне нужна логика для записи, чтобы управлять тем, куда вводится часть контента/скриптов. Мне нужно обработать регулярное выражение на этом исходном пути для ввода этих каталогов. – bstar

+1

Btw: Это не странный афаик в стиле AMD. С requirejs вы обычно называете «vendor» и такие папки (это называется прокладками с requirejs). –

+0

Настройка корневого каталога для поставщика - это не странная часть ... странная часть заключается в том, что оператор define вставляет содержимое/скрипты между именем пакета и фактическим файлом сценария. Но я согласен, я думаю, мне нужно создать прокладку для этого. – bstar