目录中所有文件的复杂性
Grunt-complexity on all the files in a directory
我想 运行 Grunt-Complexity 目录中的所有文件?
我想要 this kind of output。
有办法吗?
我的 js 文件都在一个名为 "js" 的子目录下。
这是我的 g运行tfile:
/*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目录下的第一个文件。所以它正在查看并列出文件,但随后崩溃了。
谢谢!
示例:
对于 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']
}
}
希望对你有所帮助。
好久没问这个问题了。我只是 运行 再次遇到同样的问题并找到了答案,所以这里是:
最后证明是我试图分析的文件之一导致了崩溃。这个特定的 Javascript 环境允许 C-like preprocessor directives 并且 Javascript 文件有这样的东西:
var mySettings = {
//#ifdef FOO_CONSTANT
setting : constants.FOO_SETTING
//#endif
//#ifdef BAR_CONSTANT
setting : constants.BAR_SETTING
//#endif
};
我想问题在于,如果严格按照 Javascript 阅读,预处理器指令只是平面注释,并且两个属性之间缺少一个逗号,因此 Grunt complexity 无法阅读它,因为的语法错误。使用 --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
以便将此文件排除在分析之外就可以解决问题。
我想 运行 Grunt-Complexity 目录中的所有文件? 我想要 this kind of output。 有办法吗? 我的 js 文件都在一个名为 "js" 的子目录下。 这是我的 g运行tfile:
/*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目录下的第一个文件。所以它正在查看并列出文件,但随后崩溃了。
谢谢!
示例: 对于 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']
}
}
希望对你有所帮助。
好久没问这个问题了。我只是 运行 再次遇到同样的问题并找到了答案,所以这里是:
最后证明是我试图分析的文件之一导致了崩溃。这个特定的 Javascript 环境允许 C-like preprocessor directives 并且 Javascript 文件有这样的东西:
var mySettings = {
//#ifdef FOO_CONSTANT
setting : constants.FOO_SETTING
//#endif
//#ifdef BAR_CONSTANT
setting : constants.BAR_SETTING
//#endif
};
我想问题在于,如果严格按照 Javascript 阅读,预处理器指令只是平面注释,并且两个属性之间缺少一个逗号,因此 Grunt complexity 无法阅读它,因为的语法错误。使用 --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
以便将此文件排除在分析之外就可以解决问题。