1

我正在开发一个当前使用 CoffeeScript 和 JavaScript 的生产系统。我们希望逐步将源代码迁移到 TypeScript,以期最终迁移到 Angular 2。

我将 karma 与以下 karma.conf.js 配置文件一起使用。当我开始添加 TypeScript 支持时,我开始迅速陷入潜在修复和死胡同的兔子洞。我需要使用karma-systemjs吗?可以karma-systemjs处理 CoffeeScript 吗?可以karma-systemjs和browserify一起工作吗?我应该切换到 Webpack 吗?我应该karma-typescript改用吗?如果是这样,它可以处理 CoffeeScript 吗?

无数的选择令人困惑。任何指导将不胜感激。

/*global module */

"use strict";

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

    basePath: '../',

    files : [
      'node_modules/angular/angular.js',
      'node_modules/angular-mocks/angular-mocks.js',
      'node_modules/angular-ui-bootstrap/dist/ui-bootstrap.js',
      'node_modules/angular-ui-calendar/src/calendar.js',
      'node_modules/angular-ui-grid/ui-grid.js',
      'node_modules/angular-ui-router/release/angular-ui-router.js',
      'node_modules/ui-select/dist/select.js',
      'node_modules/angular-aria/angular-aria.js',
      'node_modules/angular-animate/angular-animate.js',
      'node_modules/angular-material/angular-material.js',
      'node_modules/angular-sanitize/angular-sanitize.js',
      'node_modules/pouchdb/dist/pouchdb.js',
      'app/config/**/*.js',
      'app/source/**/*.js',
      'test/unit/**/*.js'
    ],

    autoWatch: true,

    frameworks: ['browserify', 'jasmine'],

    browsers: ['PhantomJS'],
    //browsers: ['Chrome'], // Use "Chrome" for debugging since phantomjs can swallow some errors

    plugins: [
      'karma-browserify',
      'karma-jasmine',
      'karma-phantomjs-launcher',
      'karma-chrome-launcher'
    ],

    preprocessors: {
      'app/config/**/*.js': ['browserify'],
      'app/source/**/*.js': ['browserify'],
      'test/unit/**/*.js': [ 'browserify']
    },

    browserify: {
      debug: true,
      transform: ['coffeeify', 'babelify'],
      extensions: [ ".coffee"]
    },

    // web server port
    port: 9876,

    // enable / disable colors in the output (reporters and logs)
    colors: true,
    
    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false,

    // Concurrency level
    // how many browser should be started simultaneous
    concurrency: Infinity
  });
};

4

0 回答 0