0

我不知道如何让业力不关注文件夹jspm_packages/的变化。如果我尝试将“jspm_packages”添加到排除部分,则会出现以下错误:

调试 [web-server]:服务(缓存):/Users/jm/dev/monka/node_modules/gulp-helpers/node_modules/karma-jspm/src/adapter.js
PhantomJS 1.9.8 (Mac OS X 0.0.0) 错误
  ReferenceError:找不到变量:系统
  在 /Users/jm/dev/monka/system.config.js:1

错误 [PhantomJS 1.9.8 (Mac OS X 0.0.0)]:ReferenceError:找不到变量:系统
在 http://localhost:9876/base/system.config.js?31f6cba38ed6c99ea3e9b4bc926e8ecfd6de8bd7:1

这是我的karma.conf.js

module.exports = function(config) {
  config.set({

    plugins: [
      'karma-jspm',
      'karma-jasmine',
      'karma-beep-reporter',
      'karma-verbose-reporter',
      'karma-babel-preprocessor',
      'karma-phantomjs-launcher'
    ],

    basePath   :  '',                 // base path that will be used to resolve all patterns (eg. files, exclude)
    frameworks : ['jspm', 'jasmine'], // frameworks to use available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    browsers   : ['PhantomJS'],       // start these browsers available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    reporters  : ['progress', 'beep', 'verbose'/*, 'coverage'*/], // test results reporter to use possible values: 'dots', 'progress' available reporters: https://npmjs.org/browse/keyword/karma-reporter
    singleRun  : false,  // Continuous Integration mode if true, Karma captures browsers, runs the tests and exits
    autoWatch  : true,  // Enable / disable watching file and executing tests whenever any file changes
    colors     : true,  // enable / disable colors in the output (reporters and logs)
    files      : [],    // list of files / patterns to load in the browser

    jspm: {
      config     : 'system.config.js',
      loadFiles  : ['test-unit/**/*.js'],
      serveFiles : ['dist/**/**']
    },

    proxies: {
      '/base/app'      : '/base/dist/app',
      '/base/common'   : '/base/dist/common',
      '/jspm_packages' : '/base/jspm_packages'
    },

    exclude: [
      'coverage/**',
      'typings/**',
      'dist/**/*.js.map'
    ],

    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_DEBUG,

    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
      'src/**/*.js' : ['babel', 'coverage']
    },

    babelPreprocessor: {
      options: { sourceMap:'inline', modules:'system' }
    },

    coverageReporter: { type:'html', dir:'coverage/' }

  });
};
4

1 回答 1

0

我认为使用 Karma 是不可能从被观看的文件中排除也应该被提供的。通过排除 jspm_packages Karma 停止为位于 jspm_packages 文件夹中的 system.js 提供服务,因此未定义 System。

如果您想在测试运行期间摆脱提供 jspm_packages 的服务,您可以尝试在创建自执行包后运行测试并只提供该包。

请参阅https://github.com/jspm/jspm-cli/blob/master/docs/production-workflows.md#creating-a-self-executing-bundle

于 2015-10-14T15:08:08.707 回答