У меня есть проект, в котором я использую браузер для управления своими зависимостями. Я использую Backbone with Mustache в качестве шаблонизатора на стороне клиента. Чтобы требовать шаблоны Mustache, я должен использовать 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')) });
Теперь мои тесты работают на Karma с браузером. Однако, когда я пытаюсь потребовать шаблон, Karma не выдает ошибки синтаксического анализа HTML-файла.
e.g.:
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());
} });
Можно ли настроить Karma для использования Stringify? Если да, то как? Пожалуйста помоги.
Ниже мой конфиг Кара.
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"
}
Спасибо