【发布时间】:2016-05-02 08:50:29
【问题描述】:
我正在尝试使用上述技术设置构建工作流程,但我收到以下错误,这在 karma 上运行测试时似乎非常普遍:
TypeError: 'undefined' is not an object (evaluating 'a.Sifter=b()')
即使没有添加任何 ECMSA6 特定功能也会发生这种情况。相同的工作流程在工作流程中没有转译阶段也能正常工作。
我尝试的是在连接阶段之后和对其执行丑化之前设置 babeljs,如下面的 sn-p:
var defaultTasks = [
"sass:prod", // compile scss sources
"cleanAll", // clean folders: preparing for copy
"copyAll", // copying bower files
"cssmin:customVendor", // minify and concat 'customized from vendor' css
"concat:vendorStyles", // concat vendors's css + minified 'customized from vendor' and distribute as 'css/vendor.css'
"uglify:rawVendors", // minifies unminified vendors
"concat:vendorScripts", // concat vendors's scripts and distribute as 'scripts/vendor.js'
"ngAnnotate:app", // ng-annotates app's scripts
"concat:appScripts", // concat app's (customized from vendor's + ng-annotated + customer's)
"babel",// uses babeljs to convert brandnew ES6 javascript into ES5 allowing for old browsers
"uglify:app" // minify app script and distribute as 'scripts/app.js'
];
if (!skipTest) {
defaultTasks.push("karma:target"); // run tests on minified scripts
}
重要的定义如下:
babel: {
options: {
"presets": ['es2015']
},
dist: {
files: {
"<%= concat.appScripts.dest %>": "<%= concat.appScripts.dest %>"
}
}
},
uglify: {
options: {
mangle: {
except: [
"jQuery", "angular", "tableau", "LZString", "moment", "Moment", "Modernizr",
"app", "modules"
]
}
},
app: {
files: [{
src: ["<%= concat.appScripts.dest %>"],
dest: "<%= app.dist %>/scripts/app.js"
}]
}
},
我已经对 transpile 进行了一些测试,从 babel url 运行默认逻辑,它运行良好,可以转换基本的东西。
有没有更好的工作流程,我可以使用它来针对实际执行的相同代码运行测试?
谢谢
【问题讨论】:
-
发现提到的错误是指Selectize.js,但我仍然不知道它与构建有什么关系。但是,选择包含在连接文件中。会继续挖掘
标签: karma-jasmine babeljs grunt-contrib-uglify