带有 Bower 和 Requirejs 的 Wallabyjs (Visual Studio)

Wallabyjs with Bower and Requirejs (Visual Studio)

我现在开始在我的 Web 应用程序中使用 Bower,因为我正在使用 wallabyjs 进行测试,所以我添加了

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

到我的 wallabyjs 配置。这样一切都很好。但正如我在 webpack documentation 中读到的那样,这并不是真正推荐的方式:

The more efficient approach that we would recommend is to specify an absolute path in your wallaby configuration for webpack for your external modules (not your source files) instead

我试图为我的场景(使用 requirejs)实现类似的东西,但失败了。我目前的问题:

在 require.js 的情况下,您只需要让 wallaby.js 知道其内部网络服务器应该从哪里提供文件。这样您就可以将它们从 files 列表中删除,而不必包含在解决方案中。

您可以通过添加 middleware function 来完成此操作,它可以将 Web 服务器路径映射到本地文件夹:

 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。