当前位置: 首页 > 知识库问答 >
问题:

未加载来自karma网页包的捆绑包

习斌
2023-03-14

我正在尝试建立一个混合AngularJS Angular应用程序,它使用Webpack作为模块加载程序,Karma Jasmine作为测试框架。为了运行测试,我正在使用karmawebpack;但是,webpack创建的包从未加载到浏览器中,因此测试从未执行(duh!)。我试过很多方法来检查是否正常,但我在其他网站上都没有发现这个问题。

所以,一点调试信息。首先,我的karma.conf.js文件:

const webpackConfig = require('./webpack.test');

delete webpackConfig.entry;
delete webpackConfig.output;

module.exports = function(config) {
  config.set({
    basePath:           '',
    frameworks:         ['jasmine'],
    port:               8080,
    logLevel:           config.LOG_DEBUG,
    autoWatch:          false,
    browsers:           ['Chrome', 'Firefox'],
    singleRun:          true,

    files:              [
      // Some remote libraries that should be loaded.  These all load fine.
      './client/app/app.spec.ts'
    ],

    preprocessors:      {
      './client/app/app.spec.ts': ['webpack', 'sourcemap']
    },

    webpack:            webpackConfig,
    webpackMiddleware:  {
      stats:              {
        colors:             true
      }
    },

    browserNoActivityTimeout: 60000,

    client:             {
      captureConsole:     true
    },

    browserConsoleLogOptions: {
      level:                    'log',
      format:                   '%b %T:\n%m\n',
      terminal:                 true
    },

    reporters:          ['mocha'],
    mochaReporter:      {
      output:             'autowatch'
    }
  });
};

运行Karma时,webpack执行成功(Karma webpackprintswebpack:Compiled successfully.,我可以看到webpack的输出);但是,应该保存捆绑包的临时文件(即/tmp/\u karma\u webpack/)从未创建。

我已经设置了unileRun选项为false,以查看加载了哪些文件,但捆绑包甚至没有被请求。但是,如果我将Karma的日志级别设置为DEBUG,我将看到以下(相关的)输出:

01 02 2018 12:55:26.678:DEBUG [middleware:source-files]: Requesting /base/client/app/app.spec.ts?bb6177fad9c0cf145a4962a89c7d2efd0bd0235a /
01 02 2018 12:55:26.678:DEBUG [middleware:source-files]: Fetching /home/c1moore/omninox/omnistack/client/app/app.spec.ts
01 02 2018 12:55:26.678:DEBUG [web-server]: serving (cached): /home/c1moore/omninox/omnistack/node_modules/karma-jasmine/lib/adapter.js
01 02 2018 12:55:26.678:DEBUG [web-server]: serving (cached): /home/c1moore/omninox/omnistack/client/app/app.spec.ts

看起来Karma正试图提供需要所有测试的文件;然而,我在浏览器的任何地方都看不到。也就是说,文件似乎没有被请求/加载,也没有看到浏览器试图将TS解释为JS而导致的任何错误。

我没有包括应用程序。spec.ts文件,因为它似乎不相关,因为它从未实际加载。然而,这是相当标准的。它导入所有需要的内容、所有供应商库和所有测试(使用require.context)。

那么,有没有人有任何建议、指点,或者看到我可能错过的东西?我查阅了文档、代码和各种网站,试图找到一些我遗漏的简单内容,希望能找到一些答案。

共有1个答案

宗政昱
2023-03-14

解决方案简单得令人沮丧。我在其他一些SO帖子(帖子1和帖子2)上找到了答案。

基本上,Chrome和FF拒绝执行Karma发送的测试文件,因为Karma webpack不会更改中typescript文件的扩展名。ts。js。要解决这个问题,只需为指定一个mime类型。ts您的业力中的文件。conf.js文件如下:

module.exports = (config) => {
  config.set({
    // ...

    mime: {
      'text/x-typescript':  ['ts', 'tsx']  // `tsx` is optional depending on your environment
    },

    // ...
};
 类似资料:
  • 这是我的密码: 并与, 仍然给出了这个问题: 错误。/src/客户端/资产/字体/黑色。TTF 1:0模块解析失败:意外字符”(1:0)您可能需要一个适当的加载程序来处理此文件类型,目前没有配置加载程序来处理此文件。请参见https://webpack.js.org/concepts#loaders(此二进制文件省略了源代码)@./src/Client/page/Home/Homepage.mod

  • 问题内容: 我已经为此花了好一会儿,想知道是否有可能从头开始。感谢您对此的任何帮助! npm包 我有一个npm包,它基本上是一个React组件库。该库具有嵌入式样式表,该样式表引用了CSS中的资源,例如字体和图像。然后将所有这些都使用webpack捆绑到中。 的配置如下所示: 随着看起来像: 到目前为止,一切都很好。 应用程序 现在,在另一个代码库中,我有了主应用程序,该应用程序安装了该npm软件

  • 问题内容: OSGi无法找到我的DLL文件,而且我似乎也找不到原因。 目前,我的包根目录中有DLL文件(),我也尝试将其放在目录中。 有关捆绑商品的清单看起来像这样: 然后在我的JNA界面中,执行loadLibrary(根据文档): 然后在另一个类中,我尝试使用JNA接口 我通过另一个捆绑软件提供了JNA(该捆绑软件输出com.sun.jna和上面导入的其他软件包),但也尝试过使用此处定义的捆绑软

  • 我将symfony 3迁移到symfony 4.3,并且我的自定义包移动到:src/Bundles/FooBundle。 structure FooBundle:-依赖注入-配置。php-FooExtension。php-Event-Model-Resources-config-services。yml-Service-Twig-Exception-FooBundle。php 和文件bundle/

  • 我刚刚下载了Eclipse Luna的最新版本,并立即安装了Aptana3.0插件。在这样做之后,我得到了一堆错误,与本文中列出的错误相同: “加载包[...]”期间发生内部错误 当我重新启动Eclipse时,我仍然遇到同样的错误,它似乎没有得到修复。

  • 我正在尝试部署我的svelte项目,但在livereload插件之外激活捆绑javascript时遇到了问题。当我运行rollup-c-w时,代码显示得很好,但在其他服务器上为应用程序提供服务不会激活JavaCScript。这至少应该是一种安慰。记录一些东西,并希望添加html,但它只显示一个空白页面。 卷起来。配置。js rollup-c将输出捆绑包。js。我的索引。下面是html 这是运行li