我是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相同的文件.没有任何修复.怎么解决?
我想在我的项目中使用gulp-jscs,所以我根据文档安装了它:
npm install --save-dev gulp-jscs
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行gulp文件时,我收到此错误:
TypeError: Cannot convert undefined or null to object
at Function.keys (native)
at copyConfiguration (C:\Users\[User]\Desktop\[Project]\
node_modules\jscs\lib\config\configuration.js:920:12)
Run Code Online (Sandbox Code Playgroud)
此外,还有其他与此相关的错误:
at NodeConfiguration.Configuration.
_processConfig([location-path]\node_modules\jscs\lib\config\configuration.js:459:5)
at NodeConfiguration.Configuration.load
([location-path]\node_modules\jscs\lib\config\configuration.js:211:10)
at null.StringChecker.configure
([location-path]\node_modules\jscs\lib\string-checker.js:62:29)
at null.Checker.configure ([location-path]\node_modules\jscs\lib\checker.js:27:39)
at Object.module.exports ([location-path]\node_modules\gulp-jscs\index.js:35:10)
at Gulp.<anonymous> ([location-path]\Gulpfile.js:60:17)
at module.exports ([location-path]\node_modules\orchestrator\lib\runTask.js:34:7)
at Gulp.Orchestrator._runTask ([location-path]\node_modules\orchestrator\index.js:273:3)
Process terminated with code 1.
Run Code Online (Sandbox Code Playgroud) 我在继承的解决方案中有以下文件夹结构
.\gulp.config.js
.\gulpfile.js
.\.jscsrc
.\.jshintrc
.\default.js
.\Resources\js\main.js
.\Resources\js\modules\ various user created js files
.\Resources\js\vendor\ various js files i.e jQuery
Run Code Online (Sandbox Code Playgroud)
我已经安装了gulp-jscs和gulp-jshint.
.jscsrc我来自https://github.com/johnpapa/pluralsight-gulp/blob/master/.jscsrc.
我在gulpfile.js中有以下内容:
'use strict'
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var jscs = require('gulp-jscs');
gulp.task('verifyJS',function(){
gulp.src([
'./Resources/**/*.js',
'./*.js'
])
.pipe(jscs())
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish', { verbose: true }));
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试更新.jscsrc中的excludeFiles以排除以下内容:
.\default.js
.\resources\js\vendor
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
"excludeFiles": [
"node_modules/**",
"bower_components/**",
"Resources/js/vendor/**", // vendor supplied files. ie jQuery
"./Resources/js/vendor/**",
"default.js",
"/default.js",
"./default.js",
],
Run Code Online (Sandbox Code Playgroud)
我已经包含了我尝试过的所有组合.
但是当我运行gulp verifyJS它时仍然包括我想要排除的文件.
如何正确设置excludeFiles 以排除项目根目录下的文件以及包含所有后续文件和文件夹的子文件夹?
我试图使用gulp和jscs来防止代码味道.我也想使用手表,以便在进行任何更改时都会发生这种情况.我遇到的问题是jscs是修改正在观看的源文件.这导致gulp进入无限循环的jscs修改文件,然后观察看到变化并一次又一次地关闭jscs ......
const gulp = require('gulp');
gulp.task('lint', function() {
return gulp.src('/src/**/*.js')
.pipe(jscs({
fix: true
}))
.pipe(jscs.reporter())
.pipe(gulp.dest('/src'));
});
gulp.task('watch', function() {
gulp.watch('/src/**/*.js', ['lint']);
});
Run Code Online (Sandbox Code Playgroud)