Ошибка при запуске Karma из проекта Electron Angular - PullRequest
0 голосов
/ 22 января 2020

Я пробовал много разных конфигураций безуспешно. В приведенном ниже подробном сообщении выдается ошибка, когда я выполняю karma start. arma plugin is meant to be used from within Angular CLI and will not work correctly outside of it

На уровне проекта у меня есть этот файл karma.config. js

module.exports = require('./src/karma.conf.js'); , который указывает на эту конфигурацию:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-electron'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, '../coverage'),
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['AngularElectron'],
    singleRun: true,
    customLaunchers: {
      AngularElectron: {
        base: 'Electron',
        browserWindowOptions: {
          webPreferences: {
            nodeIntegration: true,
            allowRunningInsecureContent: true
          }
        }
      }
    },
    client: {
      useIframe: false
    }
  });
}; 

Мой пакет. json видно из https://github.com/twolfson/karma-electron/issues/43

Что мне изменить?

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 30 января 2020

Я проверил проблему с GH, и ваша непосредственная проблема заключается в том, что вам нужно использовать ng test, но есть еще одна ключевая деталь, не описанная в документах, которую вы, возможно, должны знать, чтобы заставить карму-электрон работать с Angular. / Жасминовый стек (я только что разобрался):

  1. var fs = require('fs') в электронном индексе. js не удастся разрешить без пользовательского webpack.config. js

    а. запустить npm i @angular-builders/custom-webpack -D

    b. В вашем angular. json измените ваш тестовый проект:

    "test": { "builder": "@angular-builders/custom-webpack:karma", "options": { ... "customWebpackConfig": { "path": "./webpack.config.js" } } }

    c. Добавьте webpack.config. js в проект root с этим внутри:

    module.exports = { target: 'electron-renderer' };

    Это включит требуемую функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...