我使用Grunt 或Gulp 来运行我所有的JavaScript 任务。他们都做同样的事情,但在外观和感觉上却大不相同。我不是他们中的任何一个的专家,所以我说的话持保留态度。我没有使用 Travis 的经验,但我目前在我的一个 Jenkins 构建中使用 Grunt。
如果您使用 Karma,我假设您熟悉 NodeJS 和 npm。
我会给你一个使用 Grunt 的例子来说明我认为你正在尝试做的事情。
- 要在任何地方使用 Grunt,您需要在全局范围内安装它:
npm install -g grunt-cli。
- 为了将 Grunt 与 Karma 一起使用,您需要安装
grunt-karma。在您项目的根目录中:npm install --save-dev grunt-karma。此示例不包含业力配置,因为您可以在没有它的情况下为所欲为。
- 要检查您当前使用 jscs 的项目文件。也有一个 Grunt 插件:grunt-jscs。但是,我对 jshint 很熟悉,所以我将在本示例中使用它。在您项目的根目录中:
npm install --save-dev grunt-contrib-jshint。
现在这里是一个示例Gruntfile.js,它也应该位于您项目的根目录中。
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
// Task configuration.
jshint: {
options: {
devel: true,
curly: true,
eqeqeq: false,
immed: true,
latedef: false,
newcap: true,
noarg: true,
sub: true,
undef: true,
unused: true,
boss: true,
eqnull: true,
browser: true,
globals: {
jQuery: true,
angular: true
}
},
gruntfile: {
src: 'Gruntfile.js'
},
lib_test: {
src: ['src/app/**/*.js', '!src/app/libs/**/*.js']
}
}
});
// These plugins provide necessary tasks.
grunt.loadNpmTasks('grunt-contrib-jshint');
// Default task.
grunt.registerTask('test', ['jshint']);
};
要从命令行运行任务,请转到您的Gruntfile.js 所在的目录并运行grunt test。我不确定这是否是 Travis 的应用程序,但在 Jenkins 中,如果 JSHint 发现错误,构建将失败。如果您使用--force 选项,则可以绕过该选项:grunt --force test。
jshint 任务配置下的lib_test 包含你要 lint 的文件。确保它们与您的 Gruntfile 所在的位置相关,该位置应位于项目的根目录中。
Grunt 和 Gulp 可以做得更多。如果你真的想进入 JavaScript 任务自动化,我建议学习 Gulp。但是,我认为这对您来说应该是一个很好的短期解决方案。