Aurelia: Ошибка: невозможно найти модуль с идентификатором: aurelia-pal-browser в тесте Karma с помощью Webpack

У меня возникла проблема с созданием теста для компонента Aurelia. В отладке Karma консоль показывает:

Error: Unable to find module with ID: aurelia-pal-browser из aurelia-loader-webpack.

Я использую Webpack 4 и Karma 2.

Я пробовал предложения в разделе Отладка отсутствующих модулей, но не не повезло.

Кто-нибудь еще сталкивался с этим раньше?

Конфигурация кармы

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
  });
};

Аурелия тест

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();
  });
});

person codedbypaul    schedule 16.07.2018    source источник


Ответы (1)


да, в большинстве случаев, если aurelia выдает сообщение об ошибке «Невозможно найти модуль с идентификатором», это происходит из-за того, что PLATFORM.moduleName() не используется при вызове модуля. попробуйте найти имя модуля «aurelia-pal-browser» в вашем проекте и оберните его, как показано ниже. PLATFORM.moduleName('aurelia-pal-browser')

person Amitha Mahesh    schedule 16.07.2018
comment
Проблема в том, что я вызываю не aurelia-pal-browser, а плагин aurelia-webpack. Это то, над чем я не властен. Даже их пример здесь не работает: aurelia.io/docs/testing /components#testing-a-custom-element - person codedbypaul; 17.07.2018
comment
Можете ли вы разместить то же самое на следующем сайте gitter.im/aurelia/Discuss?source=explore - person Amitha Mahesh; 17.07.2018