我想对目录中的所有文件运行咕噜-复杂性吗?我想要这种输出。有办法吗?我的js文件都在一个名为"js“的子目录下。这是我的gruntfile:
/*global module:false*/
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
// Task configuration.
complexity: {
generic: {
src: ['grunt.js', 'js/*'],
//exclude: ['doNotTest.js'],
options: {
breakOnErrors: false,
jsLintXML: 'report.xml', // create XML JSLint-like report
checkstyleXML: 'checkstyle.xml', // create checkstyle report
pmdXML: 'pmd.xml', // create pmd report
errorsOnly: false, // show only maintainability errors
cyclomatic: [3, 7, 12], // or optionally a single value, like 3
halstead: [8, 13, 20], // or optionally a single value, like 8
maintainability: 100,
hideComplexFunctions: false, // only display maintainability
broadcast: false // broadcast data over event-bus
}
}
}
});
// These plugins provide necessary tasks.
grunt.loadNpmTasks('grunt-complexity');
// Default task.
grunt.registerTask('default', 'complexity');
};我只是通过键入
grunt从命令行。如果我输入这个
grunt complexity js/* 我得到了
Warning: Task "js/AgencyMediaController.js" not found. Use --force to continue.
Aborted due to warnings.AgencyMediaController.js是我的js目录中的第一个文件。所以它看了一下,列出了文件,然后就崩溃了。
谢谢!
发布于 2018-11-19 10:51:33
我很久没问这个问题了。我刚刚又碰到了同样的问题,找到了答案,下面是:
最后,结果是我试图分析的其中一个文件导致了坠机。这个特定的Javascript环境允许使用类C预处理器指令,并且Javascript文件具有如下内容:
var mySettings = {
//#ifdef FOO_CONSTANT
setting : constants.FOO_SETTING
//#endif
//#ifdef BAR_CONSTANT
setting : constants.BAR_SETTING
//#endif
};我猜问题是,如果这是严格按照Javascript读取的,预处理指令只是平面注释,这两个属性之间缺少一个逗号,因此Grunt复杂性无法读取这一点,因为语法错误。使用--force没有差别。
令人讨厌的是,这是所有错误显示的:
$ grunt --force
Running "complexity:generic" (complexity) task
Warning: undefined: Unexpected token, expected , (17570:1) Used --force, continuing.
Done, but with warnings.因此,虽然它确实提到了expected , (175:1),但它没有说明在这个项目中的几个Javascript文件中发现了哪些问题!
只要将exclude: ['path/to/MyFileWithPreprocessorDirectives.js']添加到Gruntfile.js中,以便将该文件从分析中排除在外,我就可以绕过这个问题。
发布于 2016-04-28 13:42:49
示例:对于js文件夹中的所有JS文件:
src: ['js/**/*.js']对于scss文件夹中的ass .scss文件:
src: ['scss/**/*.scss']我建议您为src文件夹创建一个配置,以便在将来的项目中更改文件夹:
样本:
var src;
config.src = src = {
sassMain : 'scss/main.scss',
distFolder : 'public/stylesheets/lovelycss.dist.css',
devFolder : 'public/stylesheets/lovelycss.dev.css',
libFolder : 'lib/**/*.js',
sassFolder : 'scss/**/*.scss',
spriteCssFolder : 'scss/helpers/_sprite.scss',
spriteDestImg : 'public/images/sprite/spritesheet.png',
spriteSrc : 'public/images/min/*.{png,jpg,gif}',
imageminCwd : 'public/images/',
imageminDest : 'public/images/min'
};
//grunt Watch ===============================
config.watch = {
scripts: {
files: ["<%= src.libFolder %>", "<%= src.sassFolder %>"]
,tasks: ["dev", "sass:dist"]
//,tasks: ["dev",'sass:dist']
}
}我希望这能帮到你。
https://stackoverflow.com/questions/36916286
复制相似问题