【问题标题】:Aurelia: Error: Unable to find module with ID: aurelia-pal-browser in Karma test with WebpackAurelia:错误:无法在使用 Webpack 的 Karma 测试中找到 ID 为 aurelia-pal-browser 的模块
【发布时间】:2018-07-16 15:16:58
【问题描述】:

我在为 Aurelia 组件创建测试时遇到问题。在 Karma 调试中,控制台显示:

Error: Unable to find module with ID: aurelia-pal-browser 来自 aurelia-loader-webpack。

我正在使用 Webpack 4 和 Karma 2。

我已经尝试了Debugging missing modules 中的建议,但没有任何运气。

以前有人遇到过这个吗?

业力配置

module.exports = function(config) {
  config.set({
    basePath: '',frameworks: ['jasmine'],
    files: [
      './setup.js',
      '../src/**/*.js',
      './unit/**/*.js'
    ],
    exclude: [],
    preprocessors: {
      './setup.js': ['webpack'],
      '../src/**/*.js': ['webpack', 'coverage'],
      './unit/**/*.js': ['webpack']
    },
    reporters: ['progress', 'coverage'],
    webpack: {
      mode: 'development',
      module: {
        rules: [{
          test: /\.js$/,
          exclude: /node_modules/,
          use: {
            loader: 'babel-loader'
          }
        }]
      }
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};

Aurelia 测试

import { StageComponent } from 'aurelia-testing';
import { bootstrap } from 'aurelia-bootstrapper';
import { PLATFORM } from 'aurelia-pal';

export class TestViewModel {
}

describe('cbs-toast tests', () => {
  let component;
  let viewModel;

  beforeEach(() => {
    viewModel = new TestViewModel();
    component = StageComponent
      .withResources(PLATFORM.moduleName('cbs-toast'))
      .inView('<div><toast></toast></div>')
      .boundTo(viewModel);
  });

  it('loads ok', done => {
    component.create(bootstrap).then(() => {
      done();
    }).catch(e => {
      console.log(e.toString());
    });
  });

  afterEach(() => {
    component.dispose();
  });
});

【问题讨论】:

    标签: webpack karma-webpack aurelia


    【解决方案1】:

    是的,大多数情况下,如果 aurelia 给出错误提示“无法找到具有 ID 的模块”,这是因为我们在调用模块时没有使用 PLATFORM.moduleName()。尝试在您的项目中搜索模块名称“aurelia-pal-browser”并将其包装如下。 PLATFORM.moduleName('aurelia-pal-browser')

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2023-03-08
    相关资源
    最近更新 更多