我正在寻找jscs(JavaScript代码样式)的方法,与jshint执行相同的行为,忽略每个文件的某些规则,并在顶部或每行注释带有开始和结束注释.
jshint示例忽略文件中的特定规则:
/* jshint undef: false */
Run Code Online (Sandbox Code Playgroud)
jshint示例忽略块中的特定规则:
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be linted with ignored by JSHint.
/* jshint ignore:end */
Run Code Online (Sandbox Code Playgroud) 我在VS 2013(更新1)中安装了一个新的MVC 5.1 Web应用程序项目,其中安装了Web Essential 2013(最新版本).构建项目后,Web Essentials会扫描javascript文件并将消息发布到输出窗口以查找找到的任何问题.对于一个全新的MVC 5.1项目,它会生成超过11,000条消息 - 这些消息并不真正有用.
我尝试了两种方法来忽略默认情况下新MVC 5项目中包含的有问题的javascript文件:
使用Web Essentials>编辑全局JSCS设置命令在我的用户配置文件目录中打开.jscs.json文件.然后将"excludeFiles"属性修改为["test/data/.js","Scripts/jquery .js"].
使用"jquery*.js"在我的Scripts文件夹中创建了一个.jshintignore文件.
这些方法都没有对生成的JSCS消息产生任何影响.我做错了什么,或者这是Web Essentials的问题?
如何在最新版本的Visual Studio 2013 Web Essentials中禁用JSCS?
我无法在菜单中找到相关选项.
我尝试将JSCS配置设置为忽略所有文件.这导致它偶尔生成的消息在我清除解决方案之前不会离开我的错误列表面板.
我正在尝试获取一个命令,我可以在vim中运行,以便在我的代码中使jscs自动纠正格式化问题.到目前为止,我想出了:
:nmap <F5> :!jscs -x .<CR>
这是好的,但它在整个目录上运行它,我需要确认vim我想重新加载缓冲区.有没有办法让vim只修复当前文件并在没有重新加载的情况下显示更改?
我是gulp的新手,并尝试使用它.我尝试使用时出现此错误gulp-jscs
'default' errored after 98 ms
[16:58:00] TypeError: Object.keys called on non-object
at Function.keys (native)
at NodeConfiguration.Configuration._throwNonCamelCaseErrorIfNeeded (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp-jscs/node_modules/jscs/lib/config/configuration.js:440:12)
at NodeConfiguration.Configuration.load (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp-jscs/node_modules/jscs/lib/config/configuration.js:51:10)
at StringChecker.configure (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp-jscs/node_modules/jscs/lib/string-checker.js:66:29)
at Checker.configure (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp-jscs/node_modules/jscs/lib/checker.js:26:39)
at module.exports (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp-jscs/index.js:31:11)
at Gulp.<anonymous> (/home/kbadr/Node_Projects/demo/membership/gulpfile.js:22:15)
at module.exports (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:34:7)
at Gulp.Orchestrator._runTask (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp/node_modules/orchestrator/index.js:273:3)
at Gulp.Orchestrator._runStep (/home/kbadr/Node_Projects/demo/membership/node_modules/gulp/node_modules/orchestrator/index.js:214:10
Run Code Online (Sandbox Code Playgroud)
这是我的 gulpfile
var gulp = require('gulp');
var jscs = require('gulp-jscs');
gulp.task('default', function () {
return gulp.src('src/app.js')
.pipe(jscs());
});
Run Code Online (Sandbox Code Playgroud) 我的gulpfile.js中有以下代码
gulp.src(['server.js'])
.pipe(jscs({fix: true}))
.pipe(gulp.dest('prod-app'));
Run Code Online (Sandbox Code Playgroud)
但是在prod-app/server.js中是与server.js相同的文件.没有任何修复.怎么解决?
我有一个在javascript代码库上运行JSCS的繁琐任务,它一直在工作,直到与使用最新,稳定版本的grunt,npm/node的构建服务器集成.
这一切都在npm 1.XX.X下运行良好,但在我升级到2.XX.X后它就破了.我尝试了最新的3.XX.X,但失败的方式与2.XX.X相同.
我假设所需的相关部分是
cli输出:
$ node -v
v5.2.0
$ npm -v
3.3.12
$ grunt --version
grunt-cli v0.1.13
grunt v0.4.5
$ grunt jscs
Loading "jscs.js" tasks...ERROR
>> TypeError: fn.call is not a function
Warning: Task "jscs" not found. Use --force to continue.
Aborted due to warnings.
Run Code Online (Sandbox Code Playgroud)
的package.json:
{
"name": "Javascript",
"version": "1.0.0",
"private": true,
"devDependencies": {
"grunt": "~0.4.5",
"matchdep": "^0.3.0",
"grunt-contrib-watch": "~0.6.1",
"grunt-express": "~1.4.1",
"grunt-open": "~0.2.3",
"grunt-chmod": "~1.0.3",
"grunt-contrib-jshint": "~0.11.3",
"grunt-contrib-uglify": "~0.10.0",
"karma": "~0.13.15",
"grunt-karma": "~0.12.1",
"jasmine-core": "~2.3.4",
"karma-jasmine": "~0.3.6", …Run Code Online (Sandbox Code Playgroud) 我在我的项目中为js(es6)添加了linters,对于新配置,我发现它们阻止使用const内部函数 - 仅用于模块级常量.我应该使用内部函数let.但我无法找到这种规则的任何理由.为什么?
对于jscs来说就是这样
disallowConstOutsideModuleScope:
const应仅用于模块范围(不在函数/块内)
我知道我可以配置和关闭该规则,我只是想知道它启用了什么?这种检查的动机是什么?
PS我有链接https://madhatted.com/2016/1/25/let-it-be与块"常量常量"
关于何时使用let和const我还需要解决另一种思想流派.该策略建议开发人员尽可能使用const.任何未重新赋值的变量都应使用const声明.
我认为这种用法很糟糕.它给编程过程增加了额外的注意力,导致代码难以理解和改变.
但我发现这些论点很有价值
我希望在我的团队的代码库中标准化Q promises的使用.在承诺方面,是否有任何好的jscs扩展(或其他短语)来帮助强制执行风格?
我们希望我们的承诺遵循以下形式:
promise()
.then()
.catch()
.done();
Run Code Online (Sandbox Code Playgroud)
并希望.then()在我们的代码中捕获任何缺少a的内容.catch()
对于承诺的其他风格提示的建议也是受欢迎的.
使用.jsrc文件,我的服务器/前端文件出现以下错误.它在我的文件顶部抛出一个错误.我怎么能抑制这个?
Unsupported rule: fix at js/server.js :
1 |'use strict';
Unsupported rule: fix at js/example.js :
1 |(function() {
Run Code Online (Sandbox Code Playgroud)
这是我的.jscsrc档案
// http://jscs.info/rules.html
{
"requireOperatorBeforeLineBreak": true,
"requireCamelCaseOrUpperCaseIdentifiers": "ignoreProperties",
"maximumLineLength": {
"value": 100,
"allowComments": true,
"allowRegex": true
},
"validateIndentation": 2,
"validateQuoteMarks": { "mark": "'", "escape": true },
"disallowMultipleLineStrings": true,
"disallowMixedSpacesAndTabs": true,
"disallowTrailingWhitespace": true,
"disallowSpaceAfterPrefixUnaryOperators": true,
"disallowKeywordsOnNewLine": ["else"],
"requireSpaceAfterKeywords": [
"if",
"else",
"for",
"while",
"do",
"switch",
"return",
"try",
"catch"
],
"requireSpaceBeforeBinaryOperators": [
"=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", …Run Code Online (Sandbox Code Playgroud) jscs ×10
javascript ×6
gulp ×2
gulp-jscs ×2
node.js ×2
coding-style ×1
ecmascript-6 ×1
gruntjs ×1
jsdoc ×1
jslint ×1
lint ×1
linter ×1
promise ×1
q ×1
vim ×1