Wallabyjs с Bower и Requirejs (Visual Studio)

Я начал использовать bower в своем веб-приложении и, поскольку я использую wallabyjs для тестирования, я добавил

{ pattern: 'bower_components/**/*.*', instrument: false, load: false }

в мою конфигурацию wallabyjs. Все работает нормально таким образом. Но, как я прочитал в документации веб-пакета, это не совсем рекомендуемый способ:

Более эффективный подход, который мы бы порекомендовали, состоит в том, чтобы вместо этого указать абсолютный путь в вашей конфигурации wallaby для веб-пакета для ваших внешних модулей (а не исходных файлов).

Я пытался добиться чего-то похожего для моего сценария (с requirejs), но не получилось. Мои текущие вопросы:

  • Каков наилучший способ обработки папки bower_components с помощью requirejs / wallabyjs?

  • Кажется, что обязательно, чтобы папка bower_components была папкой решения. Как только я говорю "Исключить из проекта" в Visual Studio, мои тесты снова проваливаются.

1 ответ

Решение

В случае require.js вам просто нужно сообщить wallaby.js, откуда его внутренний веб-сервер должен обслуживать файлы. Таким образом, вы можете удалить их из вашего files список и не нужно включать в решение.

Вы можете сделать это, добавив функцию промежуточного программного обеспечения, которая может сопоставить пути веб-сервера с локальными папками:

 module.exports = function () {
   return {
     files: [
       ...
     ],

     tests: [
       ...
     ],

     // telling wallaby to serve bower_components project folder
     // ‘as is’ from the wallaby.js web server
     middleware: (app, express) => {
       app.use('/bower_components',
               express.static(
                  require('path').join(__dirname, 'bower_components')));
     }
   };
 };

Возможно, вам придется изменить отображение в зависимости от того, как ваше приложение запрашивает bower_components.

Другие вопросы по тегам