2015-04-04 3 views
0

У меня есть проект, в котором я использую браузер для управления моими зависимостями. Я использую Backbone с Mustache в качестве механизма шаблонов на стороне клиента. Требовать шаблоны Усы я должен использовать Stringify как следующие правильно требуют шаблонов Усы:Как настроить браузер с помощью Karma для использования преобразования Stringify для шаблонов Mustache?

gulp.task('scripts', function() { 
    gulp.src(['./js/app.js']) 
     .pipe(browserify({ 
      transform: stringify({ 
      extensions: ['.html'], minify: true 
      }) 
     })) 
     .pipe(gulp.dest('dist/assets/js')) }); 

Теперь мои тесты работают на карме с browserify. Тем не менее, когда я пытаюсь потребовать шаблон, Karma не удаляет ошибки анализа синтаксиса HTML.

.: например

var Template = require('../Templates/CodeEditor.html'); var CodeEditor 
= Backbone.View.extend({ 

    el: '#CodeEdit', 

    editor: {},  currentPreviewMode: "default", 

    template: function() { 
     return Mustache.to_html(Template, this.model.toJSON()); 
} }); 

Можно ли настроить карму использовать Stringify? Если да, то как? Пожалуйста помоги.

Ниже приведена моя конфигурация Kara.

module.exports = function(config) { config.set({ 
    basePath: './js/', 
    frameworks: ['browserify', 'jasmine'], 
    browserify: { 
     debug: true, 
     transform: [ 'brfs', 'browserify-shim'] 
    }, 
    files: [ 
     '**/**/*.js' 
    ], 

    exclude: [], 
    preprocessors: { 
     'modules/**/*.js': [ 'browserify' ] 
    }, 
    reporters: ['dots'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: [ 'PhantomJS' ], 
    singleRun: false }); }; 

и часть package.json для справки:

"devDependencies": { 
    "brfs": "^1.4.0", 
    "browserify": "^9.0.3", 
    "browserify-shim": "^3.8.3", 
    "chai": "^2.2.0", 
    "del": "^1.1.1", 
    "gulp": "^3.8.11", 
    "gulp-autoprefixer": "^2.1.0", 
    "gulp-browserify": "^0.5.1", 
    "jasmine": "^2.2.1", 
    "jasmine-core": "^2.2.0", 
    "karma": "^0.12.31", 
    "karma-browserify": "^4.1.2", 
    "karma-chrome-launcher": "^0.1.7", 
    "karma-phantomjs-launcher": "^0.1.4", 
    "karma-jasmine": "^0.3.5", 
    "map-stream": "0.0.5", 
    "stringify": "^3.1.0" 


    }, 

    "browserify-shim": { 
    "jQuery": "global:jQuery", 
    "Backbone": "global:Backbone" 
    } 

Спасибо

ответ

3

проверить это. Возможно, это то, что вы ищете.

Просто добавьте

browserify: { 
    transform: ['stringify'] 
}, 

своим karma.conf.js (а также убедитесь, что stringify установлен в качестве узлового модуля)

https://gist.github.com/busypeoples/e4ec7e7c1f1a753050dd

ОБНОВЛЕНИЕ: Вы можете также добавить варианты для самого преобразования, например

transform: [ 
    ['stringify', {extensions: ['.java'], minify: true}] 
] 

https://github.com/Nikku/karma-browserify#transforms