我有一个项目,我使用 browserify 来管理我的依赖项。我使用 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')) });
现在,我的测试正在使用 browserify 在 Karma 上运行。但是,当我尝试要求模板 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());
} });
是否可以配置 Karma 以使用 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"
}
谢谢
最佳答案
看看这个。可能就是您正在寻找的。p>
只需添加
browserify: {
transform: ['stringify']
},
到你的 karma.conf.js (并确保将 stringify 安装为节点模块)
https://gist.github.com/busypeoples/e4ec7e7c1f1a753050dd
更新: 您还可以向转换本身添加选项,例如
transform: [
['stringify', {extensions: ['.java'], minify: true}]
]
关于javascript - 如何使用 Karma 配置 browserify 以将转换 Stringify 用于 Mustache 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444056/