简体   繁体   English

Gulp Jscs - TypeError:无法将undefined或null转换为object

[英]Gulp Jscs - TypeError: Cannot convert undefined or null to object

I wanted to use gulp-jscs in my project, so I've installed it according the documentation : 我想在我的项目中使用gulp-jscs,所以我根据文档安装了它:

npm install --save-dev gulp-jscs

But when I try to run the gulp file, I'm getting this error: 但是当我尝试运行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)

Also, there are other errors related to this: 此外,还有其他与此相关的错误:

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.

You need to have a .jscsrc file in the root of you project present. 您需要在项目的根目录中有一个.jscsrc文件。 In there you can provide options for JSCS as well as the code style rules that should be followed. 在那里,您可以为JSCS提供选项以及应遵循的代码样式规则

Below is the .jscsrc that's used by node-jscs project itself . 下面是.jscsrc多数民众赞成使用node-jscs项目本身 You can use this to base your own configuration on. 您可以使用它来基于您自己的配置。

{
    "preset": "google",
    "fileExtensions": [".js", "jscs"],

    "requireSemicolons": true,
    "requireParenthesesAroundIIFE": true,
    "maximumLineLength": 120,
    "validateLineBreaks": "LF",
    "validateIndentation": 4,
    "disallowTrailingComma": true,
    "disallowUnusedParams": true,

    "disallowSpacesInsideObjectBrackets": null,
    "disallowImplicitTypeConversion": ["string"],

    "safeContextKeyword": "_this",

    "jsDoc": {
        "checkAnnotations": "closurecompiler",
        "checkParamNames": true,
        "requireParamTypes": true,
        "checkRedundantParams": true,
        "checkReturnTypes": true,
        "checkRedundantReturns": true,
        "requireReturnTypes": true,
        "checkTypes": "capitalizedNativeCase",
        "checkRedundantAccess": true,
        "requireNewlineAfterDescription": true
    },

    "excludeFiles": [
        "test/data/**",
        "patterns/*"
    ]
}

Note that jscs won't actually check for anything unless you have a "preset" in your .jscsrc or have explicitly specified the rules that should be followed. 需要注意的是jscs实际上不会检查任何东西,除非你有一个"preset".jscsrc或已明确规定的规则应遵循。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM