格式错误的 Specrunner 文件 - grunt-template-jasmine-requirejs
Malformed Specrunner file - grunt-template-jasmine-requirejs
我正在使用 grunt-contrib-jasmine
和 grunt-template-jasmine-requirejs
来生成模板。在 Node v0.12.14 上一切正常,但是当我升级到 Node v4.5.0 时,我的 specrunner 文件输出格式错误。它在输出中有 JavaScript 块以及 HTML。示例块:
function (obj) {
obj || (obj = {});
var __t, __p = '', __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
with (obj) {
__p += '<!doctype html>\n<html>\n<head>\n <meta charset="utf-8">\n <title>Jasmine Spec Runner</title>\n\n ';
css.forEach(function(style){ ;
__p += '\n <link rel="stylesheet" type="text/css" href="' +
((__t = ( style )) == null ? '' : __t) +
'">\n ';
}) ;
__p += '\n\n ';
with (scripts) { ;
__p += '\n ';
[].concat(vendor).forEach(function(script){ ;
__p += '\n <script src="' +
((__t = ( script )) == null ? '' : __t) +
'"></script>\n ';
这是我的 Gruntfile 中的 'jasmine' 部分:
jasmine: {
test: {
options: {
vendor: ["src/libs/jquery.js"],
display: "short",
summary: true,
specs: ['test/test.js'],
styles: ['src/css/main.css'],
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
requireConfig: {
baseUrl: 'src/',
paths: {
"test": "../test",
"jquery-1.9": "jquery-1.9.1"
}
}
}
}
}
}
'grunt-template-jasmine-requirejs' 的某些 'templateOptions' 是否发生了我不知道的更改?以下是我使用的版本:
grunt-template-jasmine-requirejs 0.2.3
grunt-contrib-requirejs 1.0.0
grunt-contrib-jasmine 1.0.3
自更新到 Grunt v1.0.1 后,问题出在包 grunt-template-jasmine-requirejs
上,不再维护。它应该以不同的方式处理模板:grunt.util._.template(source, context)
应该是 grunt.util._.template(source)(context)
。此外,它使用的 Lodash 版本与我们的 Lodash 版本冲突。
这里有一个解决这些问题的分支:https://github.com/radum/grunt-template-jasmine-requirejs/tree/7ca7ad28b1bbb7a940de7a01710f62c5b0eb6a65
但是,这个分支仍然使用现在已弃用的 grunt.util._
,因此将来可能需要重新编址。
我正在使用 grunt-contrib-jasmine
和 grunt-template-jasmine-requirejs
来生成模板。在 Node v0.12.14 上一切正常,但是当我升级到 Node v4.5.0 时,我的 specrunner 文件输出格式错误。它在输出中有 JavaScript 块以及 HTML。示例块:
function (obj) {
obj || (obj = {});
var __t, __p = '', __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
with (obj) {
__p += '<!doctype html>\n<html>\n<head>\n <meta charset="utf-8">\n <title>Jasmine Spec Runner</title>\n\n ';
css.forEach(function(style){ ;
__p += '\n <link rel="stylesheet" type="text/css" href="' +
((__t = ( style )) == null ? '' : __t) +
'">\n ';
}) ;
__p += '\n\n ';
with (scripts) { ;
__p += '\n ';
[].concat(vendor).forEach(function(script){ ;
__p += '\n <script src="' +
((__t = ( script )) == null ? '' : __t) +
'"></script>\n ';
这是我的 Gruntfile 中的 'jasmine' 部分:
jasmine: {
test: {
options: {
vendor: ["src/libs/jquery.js"],
display: "short",
summary: true,
specs: ['test/test.js'],
styles: ['src/css/main.css'],
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
requireConfig: {
baseUrl: 'src/',
paths: {
"test": "../test",
"jquery-1.9": "jquery-1.9.1"
}
}
}
}
}
}
'grunt-template-jasmine-requirejs' 的某些 'templateOptions' 是否发生了我不知道的更改?以下是我使用的版本:
grunt-template-jasmine-requirejs 0.2.3
grunt-contrib-requirejs 1.0.0
grunt-contrib-jasmine 1.0.3
自更新到 Grunt v1.0.1 后,问题出在包 grunt-template-jasmine-requirejs
上,不再维护。它应该以不同的方式处理模板:grunt.util._.template(source, context)
应该是 grunt.util._.template(source)(context)
。此外,它使用的 Lodash 版本与我们的 Lodash 版本冲突。
这里有一个解决这些问题的分支:https://github.com/radum/grunt-template-jasmine-requirejs/tree/7ca7ad28b1bbb7a940de7a01710f62c5b0eb6a65
但是,这个分支仍然使用现在已弃用的 grunt.util._
,因此将来可能需要重新编址。