jtassin/react-responsive-table

View on GitHub
scripts/start.js

Summary

Maintainability
B
4 hrs
Test Coverage

Function setupCompiler has 49 lines of code (exceeds 25 allowed). Consider refactoring.
Open

function setupCompiler(host, port, protocol) {
  // "Compiler" is a low-level interface to Webpack.
  // It lets us listen to some events and provide our own custom messages.
  compiler = webpack(config, handleCompile);

Severity: Minor
Found in scripts/start.js - About 1 hr to fix

    Function addMiddleware has 31 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    function addMiddleware(devServer) {
      // `proxy` lets you to specify a fallback server during development.
      // Every unrecognized request will be forwarded to it.
      var proxy = require(paths.appPackageJson).proxy;
      devServer.use(historyApiFallback({
    Severity: Minor
    Found in scripts/start.js - About 1 hr to fix

      Function runDevServer has 27 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      function runDevServer(host, port, protocol) {
        var devServer = new WebpackDevServer(compiler, {
          // Enable gzip compression of generated files.
          compress: true,
          // Silence WebpackDevServer's own logs since they're generally not useful.
      Severity: Minor
      Found in scripts/start.js - About 1 hr to fix

        Function addMiddleware has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

        function addMiddleware(devServer) {
          // `proxy` lets you to specify a fallback server during development.
          // Every unrecognized request will be forwarded to it.
          var proxy = require(paths.appPackageJson).proxy;
          devServer.use(historyApiFallback({
        Severity: Minor
        Found in scripts/start.js - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Unexpected var, use let or const instead.
        Open

        var detect = require('detect-port');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var clearConsole = require('react-dev-utils/clearConsole');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

        var getProcessForPort = require('react-dev-utils/getProcessForPort');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var config = require('../config/webpack.config.dev');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var DEFAULT_PORT = process.env.PORT || 3000;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected unnamed function.
        Open

          compiler.plugin('invalid', function() {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow named function expressions (func-names)

        A pattern that's becoming more common is to give function expressions names to aid in debugging. For example:

        Foo.prototype.bar = function bar() {};

        Adding the second bar in the above example is optional. If you leave off the function name then when the function throws an exception you are likely to get something similar to anonymous function in the stack trace. If you provide the optional name for a function expression then you will get the name of the function expression in the stack trace.

        Rule Details

        This rule can enforce or disallow the use of named function expressions.

        Options

        This rule has a string option:

        • "always" (default) requires function expressions to have a name
        • "as-needed" requires function expressions to have a name, if the name cannot be assigned automatically in an ES6 environment
        • "never" disallows named function expressions, except in recursive functions, where a name is needed

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        as-needed

        ECMAScript 6 introduced a name property on all functions. The value of name is determined by evaluating the code around the function to see if a name can be inferred. For example, a function assigned to a variable will automatically have a name property equal to the name of the variable. The value of name is then used in stack traces for easier debugging.

        Examples of incorrect code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        var bar = function() {};
        
        (function bar() {
            // ...
        }())

        never

        Examples of incorrect code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        Examples of correct code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Further Reading

        Compatibility

        Unexpected function expression.
        Open

          compiler.plugin('invalid', function() {
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using arrow functions as callbacks. (prefer-arrow-callback)

        Arrow functions are suited to callbacks, because:

        • this keywords in arrow functions bind to the upper scope's.
        • The notation of the arrow function is shorter than function expression's.

        Rule Details

        This rule is aimed to flag usage of function expressions in an argument list.

        The following patterns are considered problems:

        /*eslint prefer-arrow-callback: "error"*/
        
        foo(function(a) { return a; });
        foo(function() { return this.a; }.bind(this));

        The following patterns are not considered problems:

        /*eslint prefer-arrow-callback: "error"*/
        /*eslint-env es6*/
        
        foo(a => a);
        foo(function*() { yield; });
        
        // this is not a callback.
        var foo = function foo(a) { return a; };
        
        // using `this` without `.bind(this)`.
        foo(function() { return this.a; });
        
        // recursively.
        foo(function bar(n) { return n && n + bar(n - 1); });

        Options

        This rule takes one optional argument, an object which is an options object.

        allowNamedFunctions

        This is a boolean option and it is false by default. When set to true, the rule doesn't warn on named functions used as callbacks.

        Examples of correct code for the { "allowNamedFunctions": true } option:

        /*eslint prefer-arrow-callback: ["error", { "allowNamedFunctions": true }]*/
        
        foo(function bar() {});

        allowUnboundThis

        This is a boolean option and it is true by default. When set to false, this option allows the use of this without restriction and checks for dynamically assigned this values such as when using Array.prototype.map with a context argument. Normally, the rule will flag the use of this whenever a function does not use bind() to specify the value of this constantly.

        Examples of incorrect code for the { "allowUnboundThis": false } option:

        /*eslint prefer-arrow-callback: ["error", { "allowUnboundThis": false }]*/
        /*eslint-env es6*/
        
        foo(function() { this.a; });
        
        foo(function() { (() => this); });
        
        someArray.map(function (itm) { return this.doSomething(itm); }, someObject);

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about function expressions in an argument list, you can safely disable this rule. Source: http://eslint.org/docs/rules/

        A space is required before '}'.
        Open

        require('dotenv').config({silent: true});
        Severity: Minor
        Found in scripts/start.js by eslint

        enforce consistent spacing inside braces (object-curly-spacing)

        While formatting preferences are very personal, a number of style guides require or disallow spaces between curly braces in the following situations:

        // simple object literals
        var obj = { foo: "bar" };
        
        // nested object literals
        var obj = { foo: { zoo: "bar" } };
        
        // destructuring assignment (EcmaScript 6)
        var { x, y } = y;
        
        // import/export declarations (EcmaScript 6)
        import { foo } from "bar";
        export { foo };

        Rule Details

        This rule enforce consistent spacing inside braces of object literals, destructuring assignments, and import/export specifiers.

        Options

        This rule has two options, a string option and an object option.

        String option:

        • "never" (default) disallows spacing inside of braces
        • "always" requires spacing inside of braces (except {})

        Object option:

        • "arraysInObjects": true requires spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to never)
        • "arraysInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to always)
        • "objectsInObjects": true requires spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to never)
        • "objectsInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to always)

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint object-curly-spacing: ["error", "never"]*/
        
        var obj = { 'foo': 'bar' };
        var obj = {'foo': 'bar' };
        var obj = { baz: {'foo': 'qux'}, bar};
        var obj = {baz: { 'foo': 'qux'}, bar};
        var {x } = y;
        import { foo } from 'bar';

        Examples of correct code for this rule with the default "never" option:

        /*eslint object-curly-spacing: ["error", "never"]*/
        
        var obj = {'foo': 'bar'};
        var obj = {'foo': {'bar': 'baz'}, 'qux': 'quxx'};
        var obj = {
          'foo': 'bar'
        };
        var obj = {'foo': 'bar'
        };
        var obj = {
          'foo':'bar'};
        var obj = {};
        var {x} = y;
        import {foo} from 'bar';

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint object-curly-spacing: ["error", "always"]*/
        
        var obj = {'foo': 'bar'};
        var obj = {'foo': 'bar' };
        var obj = { baz: {'foo': 'qux'}, bar};
        var obj = {baz: { 'foo': 'qux' }, bar};
        var obj = {'foo': 'bar'
        };
        var obj = {
          'foo':'bar'};
        var {x} = y;
        import {foo } from 'bar';

        Examples of correct code for this rule with the "always" option:

        /*eslint object-curly-spacing: ["error", "always"]*/
        
        var obj = {};
        var obj = { 'foo': 'bar' };
        var obj = { 'foo': { 'bar': 'baz' }, 'qux': 'quxx' };
        var obj = {
          'foo': 'bar'
        };
        var { x } = y;
        import { foo } from 'bar';

        arraysInObjects

        Examples of additional correct code for this rule with the "never", { "arraysInObjects": true } options:

        /*eslint object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/
        
        var obj = {"foo": [ 1, 2 ] };
        var obj = {"foo": [ "baz", "bar" ] };

        Examples of additional correct code for this rule with the "always", { "arraysInObjects": false } options:

        /*eslint object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/
        
        var obj = { "foo": [ 1, 2 ]};
        var obj = { "foo": [ "baz", "bar" ]};

        objectsInObjects

        Examples of additional correct code for this rule with the "never", { "objectsInObjects": true } options:

        /*eslint object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/
        
        var obj = {"foo": {"baz": 1, "bar": 2} };

        Examples of additional correct code for this rule with the "always", { "objectsInObjects": false } options:

        /*eslint object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/
        
        var obj = { "foo": { "baz": 1, "bar": 2 }};

        When Not To Use It

        You can turn this rule off if you are not concerned with the consistency of spacing between curly braces.

        Related Rules

        Unexpected var, use let or const instead.
        Open

        var httpProxyMiddleware = require('http-proxy-middleware');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var getProcessForPort = require('react-dev-utils/getProcessForPort');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

        var prompt = require('react-dev-utils/prompt');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var useYarn = pathExists.sync(paths.yarnLockFile);
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var isInteractive = process.stdout.isTTY;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var handleCompile;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var isSmokeTest = process.argv.some(arg => arg.indexOf('--smoke-test') > -1);
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var historyApiFallback = require('connect-history-api-fallback');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var detect = require('detect-port');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

        var checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var chalk = require('chalk');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var pathExists = require('path-exists');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var paths = require('../config/paths');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected unnamed function.
        Open

          handleCompile = function (err, stats) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow named function expressions (func-names)

        A pattern that's becoming more common is to give function expressions names to aid in debugging. For example:

        Foo.prototype.bar = function bar() {};

        Adding the second bar in the above example is optional. If you leave off the function name then when the function throws an exception you are likely to get something similar to anonymous function in the stack trace. If you provide the optional name for a function expression then you will get the name of the function expression in the stack trace.

        Rule Details

        This rule can enforce or disallow the use of named function expressions.

        Options

        This rule has a string option:

        • "always" (default) requires function expressions to have a name
        • "as-needed" requires function expressions to have a name, if the name cannot be assigned automatically in an ES6 environment
        • "never" disallows named function expressions, except in recursive functions, where a name is needed

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        as-needed

        ECMAScript 6 introduced a name property on all functions. The value of name is determined by evaluating the code around the function to see if a name can be inferred. For example, a function assigned to a variable will automatically have a name property equal to the name of the variable. The value of name is then used in stack traces for easier debugging.

        Examples of incorrect code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        var bar = function() {};
        
        (function bar() {
            // ...
        }())

        never

        Examples of incorrect code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        Examples of correct code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Further Reading

        Compatibility

        Unexpected var, use let or const instead.
        Open

        var WebpackDevServer = require('webpack-dev-server');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var useYarn = pathExists.sync(paths.yarnLockFile);
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected unnamed function.
        Open

          compiler.plugin('done', function(stats) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow named function expressions (func-names)

        A pattern that's becoming more common is to give function expressions names to aid in debugging. For example:

        Foo.prototype.bar = function bar() {};

        Adding the second bar in the above example is optional. If you leave off the function name then when the function throws an exception you are likely to get something similar to anonymous function in the stack trace. If you provide the optional name for a function expression then you will get the name of the function expression in the stack trace.

        Rule Details

        This rule can enforce or disallow the use of named function expressions.

        Options

        This rule has a string option:

        • "always" (default) requires function expressions to have a name
        • "as-needed" requires function expressions to have a name, if the name cannot be assigned automatically in an ES6 environment
        • "never" disallows named function expressions, except in recursive functions, where a name is needed

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        as-needed

        ECMAScript 6 introduced a name property on all functions. The value of name is determined by evaluating the code around the function to see if a name can be inferred. For example, a function assigned to a variable will automatically have a name property equal to the name of the variable. The value of name is then used in stack traces for easier debugging.

        Examples of incorrect code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        var bar = function() {};
        
        (function bar() {
            // ...
        }())

        never

        Examples of incorrect code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        Examples of correct code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Further Reading

        Compatibility

        All 'var' declarations must be at the top of the function scope.
        Open

        var config = require('../config/webpack.config.dev');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

        var pathExists = require('path-exists');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

            var isSuccessful = !messages.errors.length && !messages.warnings.length;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

            var showInstructions = isSuccessful && (isInteractive || isFirstCompile);
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var cli = useYarn ? 'yarn' : 'npm';
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var isInteractive = process.stdout.isTTY;
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected string concatenation.
        Open

              console.log('  ' + chalk.cyan(protocol + '://' + host + ':' + port + '/'));
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        All 'var' declarations must be at the top of the function scope.
        Open

        var webpack = require('webpack');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var WebpackDevServer = require('webpack-dev-server');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

        var historyApiFallback = require('connect-history-api-fallback');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var paths = require('../config/paths');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var compiler;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var isSmokeTest = process.argv.some(arg => arg.indexOf('--smoke-test') > -1);
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

          var isFirstCompile = true;
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

          var isFirstCompile = true;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Missing space before function parentheses.
        Open

          compiler.plugin('done', function(stats) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow a space before function parenthesis (space-before-function-paren)

        When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

        function withoutSpace(x) {
            // ...
        }
        
        function withSpace (x) {
            // ...
        }
        
        var anonymousWithoutSpace = function() {};
        
        var anonymousWithSpace = function () {};

        Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

        Rule Details

        This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

        Options

        This rule has a string option or an object option:

        {
            "space-before-function-paren": ["error", "always"],
            // or
            "space-before-function-paren": ["error", {
                "anonymous": "always",
                "named": "always",
                "asyncArrow": "ignore"
            }],
        }
        • always (default) requires a space followed by the ( of arguments.
        • never disallows any space followed by the ( of arguments.

        The string option does not check async arrow function expressions for backward compatibility.

        You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

        • anonymous is for anonymous function expressions (e.g. function () {}).
        • named is for named function expressions (e.g. function foo () {}).
        • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

        "always"

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        "never"

        Examples of incorrect code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        Examples of correct code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        {"anonymous": "always", "named": "never", "asyncArrow": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        var foo = async(a) => await a

        Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        var foo = async (a) => await a

        {"anonymous": "never", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        {"anonymous": "ignore", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        var bar = function() {
            // ...
        };
        
        var bar = function () {
            // ...
        };
        
        function foo () {
            // ...
        }
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        When Not To Use It

        You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

        Related Rules

        Unexpected var, use let or const instead.
        Open

            var showInstructions = isSuccessful && (isInteractive || isFirstCompile);
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var clearConsole = require('react-dev-utils/clearConsole');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

            var messages = formatWebpackMessages(stats.toJson({}, true));
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected string concatenation.
        Open

              console.log('  ' + chalk.cyan(protocol + '://' + host + ':' + port + '/'));
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        All 'var' declarations must be at the top of the function scope.
        Open

        var httpProxyMiddleware = require('http-proxy-middleware');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

        var cli = useYarn ? 'yarn' : 'npm';
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var DEFAULT_PORT = process.env.PORT || 3000;
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected function expression.
        Open

          compiler.plugin('done', function(stats) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using arrow functions as callbacks. (prefer-arrow-callback)

        Arrow functions are suited to callbacks, because:

        • this keywords in arrow functions bind to the upper scope's.
        • The notation of the arrow function is shorter than function expression's.

        Rule Details

        This rule is aimed to flag usage of function expressions in an argument list.

        The following patterns are considered problems:

        /*eslint prefer-arrow-callback: "error"*/
        
        foo(function(a) { return a; });
        foo(function() { return this.a; }.bind(this));

        The following patterns are not considered problems:

        /*eslint prefer-arrow-callback: "error"*/
        /*eslint-env es6*/
        
        foo(a => a);
        foo(function*() { yield; });
        
        // this is not a callback.
        var foo = function foo(a) { return a; };
        
        // using `this` without `.bind(this)`.
        foo(function() { return this.a; });
        
        // recursively.
        foo(function bar(n) { return n && n + bar(n - 1); });

        Options

        This rule takes one optional argument, an object which is an options object.

        allowNamedFunctions

        This is a boolean option and it is false by default. When set to true, the rule doesn't warn on named functions used as callbacks.

        Examples of correct code for the { "allowNamedFunctions": true } option:

        /*eslint prefer-arrow-callback: ["error", { "allowNamedFunctions": true }]*/
        
        foo(function bar() {});

        allowUnboundThis

        This is a boolean option and it is true by default. When set to false, this option allows the use of this without restriction and checks for dynamically assigned this values such as when using Array.prototype.map with a context argument. Normally, the rule will flag the use of this whenever a function does not use bind() to specify the value of this constantly.

        Examples of incorrect code for the { "allowUnboundThis": false } option:

        /*eslint prefer-arrow-callback: ["error", { "allowUnboundThis": false }]*/
        /*eslint-env es6*/
        
        foo(function() { this.a; });
        
        foo(function() { (() => this); });
        
        someArray.map(function (itm) { return this.doSomething(itm); }, someObject);

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about function expressions in an argument list, you can safely disable this rule. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

            var isSuccessful = !messages.errors.length && !messages.warnings.length;
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        A space is required after '{'.
        Open

        require('dotenv').config({silent: true});
        Severity: Minor
        Found in scripts/start.js by eslint

        enforce consistent spacing inside braces (object-curly-spacing)

        While formatting preferences are very personal, a number of style guides require or disallow spaces between curly braces in the following situations:

        // simple object literals
        var obj = { foo: "bar" };
        
        // nested object literals
        var obj = { foo: { zoo: "bar" } };
        
        // destructuring assignment (EcmaScript 6)
        var { x, y } = y;
        
        // import/export declarations (EcmaScript 6)
        import { foo } from "bar";
        export { foo };

        Rule Details

        This rule enforce consistent spacing inside braces of object literals, destructuring assignments, and import/export specifiers.

        Options

        This rule has two options, a string option and an object option.

        String option:

        • "never" (default) disallows spacing inside of braces
        • "always" requires spacing inside of braces (except {})

        Object option:

        • "arraysInObjects": true requires spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to never)
        • "arraysInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to always)
        • "objectsInObjects": true requires spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to never)
        • "objectsInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to always)

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint object-curly-spacing: ["error", "never"]*/
        
        var obj = { 'foo': 'bar' };
        var obj = {'foo': 'bar' };
        var obj = { baz: {'foo': 'qux'}, bar};
        var obj = {baz: { 'foo': 'qux'}, bar};
        var {x } = y;
        import { foo } from 'bar';

        Examples of correct code for this rule with the default "never" option:

        /*eslint object-curly-spacing: ["error", "never"]*/
        
        var obj = {'foo': 'bar'};
        var obj = {'foo': {'bar': 'baz'}, 'qux': 'quxx'};
        var obj = {
          'foo': 'bar'
        };
        var obj = {'foo': 'bar'
        };
        var obj = {
          'foo':'bar'};
        var obj = {};
        var {x} = y;
        import {foo} from 'bar';

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint object-curly-spacing: ["error", "always"]*/
        
        var obj = {'foo': 'bar'};
        var obj = {'foo': 'bar' };
        var obj = { baz: {'foo': 'qux'}, bar};
        var obj = {baz: { 'foo': 'qux' }, bar};
        var obj = {'foo': 'bar'
        };
        var obj = {
          'foo':'bar'};
        var {x} = y;
        import {foo } from 'bar';

        Examples of correct code for this rule with the "always" option:

        /*eslint object-curly-spacing: ["error", "always"]*/
        
        var obj = {};
        var obj = { 'foo': 'bar' };
        var obj = { 'foo': { 'bar': 'baz' }, 'qux': 'quxx' };
        var obj = {
          'foo': 'bar'
        };
        var { x } = y;
        import { foo } from 'bar';

        arraysInObjects

        Examples of additional correct code for this rule with the "never", { "arraysInObjects": true } options:

        /*eslint object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/
        
        var obj = {"foo": [ 1, 2 ] };
        var obj = {"foo": [ "baz", "bar" ] };

        Examples of additional correct code for this rule with the "always", { "arraysInObjects": false } options:

        /*eslint object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/
        
        var obj = { "foo": [ 1, 2 ]};
        var obj = { "foo": [ "baz", "bar" ]};

        objectsInObjects

        Examples of additional correct code for this rule with the "never", { "objectsInObjects": true } options:

        /*eslint object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/
        
        var obj = {"foo": {"baz": 1, "bar": 2} };

        Examples of additional correct code for this rule with the "always", { "objectsInObjects": false } options:

        /*eslint object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/
        
        var obj = { "foo": { "baz": 1, "bar": 2 }};

        When Not To Use It

        You can turn this rule off if you are not concerned with the consistency of spacing between curly braces.

        Related Rules

        Unexpected var, use let or const instead.
        Open

        var chalk = require('chalk');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

        var webpack = require('webpack');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

        var openBrowser = require('react-dev-utils/openBrowser');
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

        var prompt = require('react-dev-utils/prompt');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var handleCompile;
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

            var messages = formatWebpackMessages(stats.toJson({}, true));
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var openBrowser = require('react-dev-utils/openBrowser');
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

        var compiler;
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Missing space before function parentheses.
        Open

          compiler.plugin('invalid', function() {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow a space before function parenthesis (space-before-function-paren)

        When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

        function withoutSpace(x) {
            // ...
        }
        
        function withSpace (x) {
            // ...
        }
        
        var anonymousWithoutSpace = function() {};
        
        var anonymousWithSpace = function () {};

        Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

        Rule Details

        This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

        Options

        This rule has a string option or an object option:

        {
            "space-before-function-paren": ["error", "always"],
            // or
            "space-before-function-paren": ["error", {
                "anonymous": "always",
                "named": "always",
                "asyncArrow": "ignore"
            }],
        }
        • always (default) requires a space followed by the ( of arguments.
        • never disallows any space followed by the ( of arguments.

        The string option does not check async arrow function expressions for backward compatibility.

        You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

        • anonymous is for anonymous function expressions (e.g. function () {}).
        • named is for named function expressions (e.g. function foo () {}).
        • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

        "always"

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        "never"

        Examples of incorrect code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        Examples of correct code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        {"anonymous": "always", "named": "never", "asyncArrow": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        var foo = async(a) => await a

        Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        var foo = async (a) => await a

        {"anonymous": "never", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        {"anonymous": "ignore", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        var bar = function() {
            // ...
        };
        
        var bar = function () {
            // ...
        };
        
        function foo () {
            // ...
        }
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        When Not To Use It

        You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

        Related Rules

        Unexpected string concatenation.
        Open

            res.end('Proxy error: Could not proxy request ' + req.url + ' from ' +
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Unexpected string concatenation.
        Open

              chalk.yellow('Something is already running on port ' + DEFAULT_PORT + '.' +
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Missing semicolon.
        Open

          }
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow semicolons instead of ASI (semi)

        JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

        var name = "ESLint"
        var website = "eslint.org";

        On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

        In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

        However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

        return
        {
            name: "ESLint"
        };

        This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

        return;
        {
            name: "ESLint";
        }

        Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

        On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

        var globalCounter = { }
        
        (function () {
            var n = 0
            globalCounter.increment = function () {
                return ++n
            }
        })()

        In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

        Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

        1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
        2. The line is -- or ++ (in which case it will decrement/increment the next token.)
        3. It is a for(), while(), do, if(), or else, and there is no {
        4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

        Rule Details

        This rule enforces consistent use of semicolons.

        Options

        This rule has two options, a string option and an object option.

        String option:

        • "always" (default) requires semicolons at the end of statements
        • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

        Object option:

        • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint semi: ["error", "always"]*/
        
        var name = "ESLint"
        
        object.method = function() {
            // ...
        }

        Examples of correct code for this rule with the default "always" option:

        /*eslint semi: "error"*/
        
        var name = "ESLint";
        
        object.method = function() {
            // ...
        };

        never

        Examples of incorrect code for this rule with the "never" option:

        /*eslint semi: ["error", "never"]*/
        
        var name = "ESLint";
        
        object.method = function() {
            // ...
        };

        Examples of correct code for this rule with the "never" option:

        /*eslint semi: ["error", "never"]*/
        
        var name = "ESLint"
        
        object.method = function() {
            // ...
        }
        
        var name = "ESLint"
        
        ;(function() {
            // ...
        })()

        omitLastInOneLineBlock

        Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

        /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
        
        if (foo) { bar() }
        
        if (foo) { bar(); baz() }

        When Not To Use It

        If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

        Further Reading

        Related Rules

        • [no-extra-semi](no-extra-semi.md)
        • [no-unexpected-multiline](no-unexpected-multiline.md)
        • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

            var existingProcess = getProcessForPort(DEFAULT_PORT);
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected string concatenation.
        Open

            console.log(chalk.red('Something is already running on port ' + DEFAULT_PORT + '.'));
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Unexpected string concatenation.
        Open

              console.log('Use ' + chalk.yellow('/* eslint-disable */') + ' to ignore all warnings in a file.');
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Expected indentation of 6 spaces but found 8.
        Open

                res.writeHead(500);
        Severity: Minor
        Found in scripts/start.js by eslint

        enforce consistent indentation (indent)

        There are several common guidelines which require specific indentation of nested blocks and statements, like:

        function hello(indentSize, type) {
            if (indentSize === 4 && type !== 'tab') {
                console.log('Each next indentation will increase on 4 spaces');
            }
        }

        These are the most common scenarios recommended in different style guides:

        • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
        • Tabs: jQuery
        • Four spaces: Crockford

        Rule Details

        This rule enforces a consistent indentation style. The default style is 4 spaces.

        Options

        This rule has a mixed option:

        For example, for 2-space indentation:

        {
            "indent": ["error", 2]
        }

        Or for tabbed indentation:

        {
            "indent": ["error", "tab"]
        }

        Examples of incorrect code for this rule with the default options:

        /*eslint indent: "error"*/
        
        if (a) {
          b=c;
          function foo(d) {
            e=f;
          }
        }

        Examples of correct code for this rule with the default options:

        /*eslint indent: "error"*/
        
        if (a) {
            b=c;
            function foo(d) {
                e=f;
            }
        }

        This rule has an object option:

        • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
        • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
        • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
        • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
        • "FunctionDeclaration" takes an object to define rules for function declarations.
          • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
          • body (default: 1) enforces indentation level for the body of a function declaration.
        • "FunctionExpression" takes an object to define rules for function expressions.
          • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
          • body (default: 1) enforces indentation level for the body of a function expression.
        • "CallExpression" takes an object to define rules for function call expressions.
          • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
        • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
        • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

        Level of indentation denotes the multiple of the indent specified. Example:

        • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
        • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
        • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
        • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
        • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
        • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
        • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
        • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
        • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
        • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
        • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
        • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
        • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
        • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

        tab

        Examples of incorrect code for this rule with the "tab" option:

        /*eslint indent: ["error", "tab"]*/
        
        if (a) {
             b=c;
        function foo(d) {
                   e=f;
         }
        }

        Examples of correct code for this rule with the "tab" option:

        /*eslint indent: ["error", "tab"]*/
        
        if (a) {
        /*tab*/b=c;
        /*tab*/function foo(d) {
        /*tab*//*tab*/e=f;
        /*tab*/}
        }

        SwitchCase

        Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

        /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
        
        switch(a){
        case "a":
            break;
        case "b":
            break;
        }

        Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

        /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
        
        switch(a){
          case "a":
            break;
          case "b":
            break;
        }

        VariableDeclarator

        Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

        /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
        /*eslint-env es6*/
        
        var a,
            b,
            c;
        let a,
            b,
            c;
        const a = 1,
            b = 2,
            c = 3;

        Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

        /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
        /*eslint-env es6*/
        
        var a,
          b,
          c;
        let a,
          b,
          c;
        const a = 1,
          b = 2,
          c = 3;

        Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

        /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
        /*eslint-env es6*/
        
        var a,
            b,
            c;
        let a,
            b,
            c;
        const a = 1,
            b = 2,
            c = 3;

        Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

        /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
        /*eslint-env es6*/
        
        var a,
            b,
            c;
        let a,
            b,
            c;
        const a = 1,
              b = 2,
              c = 3;

        outerIIFEBody

        Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

        /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
        
        (function() {
        
          function foo(x) {
            return x + 1;
          }
        
        })();
        
        
        if(y) {
        console.log('foo');
        }

        Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

        /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
        
        (function() {
        
        function foo(x) {
          return x + 1;
        }
        
        })();
        
        
        if(y) {
           console.log('foo');
        }

        MemberExpression

        Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

        /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
        
        foo
        .bar
        .baz()

        Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

        /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
        
        foo
          .bar
          .baz();
        
        // Any indentation is permitted in variable declarations and assignments.
        var bip = aardvark.badger
                          .coyote;

        FunctionDeclaration

        Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

        /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
        
        function foo(bar,
          baz,
          qux) {
            qux();
        }

        Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

        /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
        
        function foo(bar,
            baz,
            qux) {
          qux();
        }

        Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

        /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
        
        function foo(bar, baz,
          qux, boop) {
          qux();
        }

        Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

        /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
        
        function foo(bar, baz,
                     qux, boop) {
          qux();
        }

        FunctionExpression

        Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

        /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
        
        var foo = function(bar,
          baz,
          qux) {
            qux();
        }

        Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

        /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
        
        var foo = function(bar,
            baz,
            qux) {
          qux();
        }

        Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

        /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
        
        var foo = function(bar, baz,
          qux, boop) {
          qux();
        }

        Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

        /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
        
        var foo = function(bar, baz,
                           qux, boop) {
          qux();
        }

        CallExpression

        Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

        /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
        
        foo(bar,
            baz,
              qux
        );

        Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

        /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
        
        foo(bar,
          baz,
          qux
        );

        Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

        /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
        
        foo(bar, baz,
          baz, boop, beep);

        Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

        /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
        
        foo(bar, baz,
            baz, boop, beep);

        ArrayExpression

        Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

        /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
        
        var foo = [
            bar,
        baz,
              qux
        ];

        Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

        /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
        
        var foo = [
          bar,
          baz,
          qux
        ];

        Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

        /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
        
        var foo = [bar,
          baz,
          qux
        ];

        Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

        /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
        
        var foo = [bar,
                   baz,
                   qux
        ];

        ObjectExpression

        Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

        /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
        
        var foo = {
            bar: 1,
        baz: 2,
              qux: 3
        };

        Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

        /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
        
        var foo = {
          bar: 1,
          baz: 2,
          qux: 3
        };

        Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

        /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
        
        var foo = { bar: 1,
          baz: 2 };

        Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

        /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
        
        var foo = { bar: 1,
                    baz: 2 };

        Compatibility

        Unexpected string concatenation.
        Open

              console.log(chalk.red('Instead, the type of "proxy" was "' + typeof proxy + '".'));
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Unexpected var, use let or const instead.
        Open

            var mayProxy = /^(?!\/(index\.html$|.*\.hot-update\.json$|sockjs-node\/)).*$/;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected string concatenation.
        Open

                ((existingProcess) ? ' Probably:\n  ' + existingProcess : '')) +
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Unexpected string concatenation.
        Open

              chalk.yellow('Something is already running on port ' + DEFAULT_PORT + '.' +
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Missing space before function parentheses.
        Open

              onProxyReq: function(proxyReq, req, res) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow a space before function parenthesis (space-before-function-paren)

        When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

        function withoutSpace(x) {
            // ...
        }
        
        function withSpace (x) {
            // ...
        }
        
        var anonymousWithoutSpace = function() {};
        
        var anonymousWithSpace = function () {};

        Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

        Rule Details

        This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

        Options

        This rule has a string option or an object option:

        {
            "space-before-function-paren": ["error", "always"],
            // or
            "space-before-function-paren": ["error", {
                "anonymous": "always",
                "named": "always",
                "asyncArrow": "ignore"
            }],
        }
        • always (default) requires a space followed by the ( of arguments.
        • never disallows any space followed by the ( of arguments.

        The string option does not check async arrow function expressions for backward compatibility.

        You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

        • anonymous is for anonymous function expressions (e.g. function () {}).
        • named is for named function expressions (e.g. function foo () {}).
        • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

        "always"

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        "never"

        Examples of incorrect code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        Examples of correct code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        {"anonymous": "always", "named": "never", "asyncArrow": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        var foo = async(a) => await a

        Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        var foo = async (a) => await a

        {"anonymous": "never", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        {"anonymous": "ignore", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        var bar = function() {
            // ...
        };
        
        var bar = function () {
            // ...
        };
        
        function foo () {
            // ...
        }
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        When Not To Use It

        You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

        Related Rules

        Unexpected unnamed method 'onProxyReq'.
        Open

              onProxyReq: function(proxyReq, req, res) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow named function expressions (func-names)

        A pattern that's becoming more common is to give function expressions names to aid in debugging. For example:

        Foo.prototype.bar = function bar() {};

        Adding the second bar in the above example is optional. If you leave off the function name then when the function throws an exception you are likely to get something similar to anonymous function in the stack trace. If you provide the optional name for a function expression then you will get the name of the function expression in the stack trace.

        Rule Details

        This rule can enforce or disallow the use of named function expressions.

        Options

        This rule has a string option:

        • "always" (default) requires function expressions to have a name
        • "as-needed" requires function expressions to have a name, if the name cannot be assigned automatically in an ES6 environment
        • "never" disallows named function expressions, except in recursive functions, where a name is needed

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        as-needed

        ECMAScript 6 introduced a name property on all functions. The value of name is determined by evaluating the code around the function to see if a name can be inferred. For example, a function assigned to a variable will automatically have a name property equal to the name of the variable. The value of name is then used in stack traces for easier debugging.

        Examples of incorrect code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        var bar = function() {};
        
        (function bar() {
            // ...
        }())

        never

        Examples of incorrect code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        Examples of correct code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Further Reading

        Compatibility

        Expected parentheses around arrow function argument having a body with curly braces.
        Open

            prompt(question, true).then(shouldChangePort => {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require parens in arrow function arguments (arrow-parens)

        Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.

        Rule Details

        This rule enforces parentheses around arrow function parameters regardless of arity. For example:

        /*eslint-env es6*/
        
        // Bad
        a => {}
        
        // Good
        (a) => {}

        Following this style will help you find arrow functions (=>) which may be mistakenly included in a condition when a comparison such as >= was the intent.

        /*eslint-env es6*/
        
        // Bad
        if (a => 2) {
        }
        
        // Good
        if (a >= 2) {
        }

        The rule can also be configured to discourage the use of parens when they are not required:

        /*eslint-env es6*/
        
        // Bad
        (a) => {}
        
        // Good
        a => {}

        Options

        This rule has a string option and an object one.

        String options are:

        • "always" (default) requires parens around arguments in all cases.
        • "as-needed" allows omitting parens when there is only one argument.

        Object properties for variants of the "as-needed" option:

        • "requireForBlockBody": true modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => a);
        a(foo => { if (true) {} });

        Examples of correct code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        () => {};
        (a) => {};
        (a) => a;
        (a) => {'\n'}
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });

        If Statements

        One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:

        /*eslint-env es6*/
        
        var a = 1;
        var b = 2;
        // ...
        if (a => b) {
         console.log('bigger');
        } else {
         console.log('smaller');
        }
        // outputs 'bigger', not smaller as expected

        The contents of the if statement is an arrow function, not a comparison.

        If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.

        /*eslint-env es6*/
        
        var a = 1;
        var b = 0;
        // ...
        if ((a) => b) {
         console.log('truthy value returned');
        } else {
         console.log('falsey value returned');
        }
        // outputs 'truthy value returned'

        The following is another example of this behavior:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = a => b ? c: d;
        // f = ?

        f is an arrow function which takes a as an argument and returns the result of b ? c: d.

        This should be rewritten like so:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = (a) => b ? c: d;

        as-needed

        Examples of incorrect code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => a;
        (a) => {'\n'};
        a.then((foo) => {});
        a.then((foo) => a);
        a((foo) => { if (true) {} });

        Examples of correct code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        () => {};
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        requireForBlockBody

        Examples of incorrect code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => a;
        a => {};
        a => {'\n'};
        a.map((x) => x * x);
        a.map(x => {
          return x * x;
        });
        a.then(foo => {});

        Examples of correct code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => {'\n'};
        a => ({});
        () => {};
        a => a;
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });
        a((foo) => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        Further Reading

        Unexpected string concatenation.
        Open

              console.log('Use ' + chalk.yellow('// eslint-disable-next-line') + ' to ignore the next line.');
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Unexpected string concatenation.
        Open

              'See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (' +
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Expected parentheses around arrow function argument having a body with curly braces.
        Open

        detect(DEFAULT_PORT).then(port => {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require parens in arrow function arguments (arrow-parens)

        Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.

        Rule Details

        This rule enforces parentheses around arrow function parameters regardless of arity. For example:

        /*eslint-env es6*/
        
        // Bad
        a => {}
        
        // Good
        (a) => {}

        Following this style will help you find arrow functions (=>) which may be mistakenly included in a condition when a comparison such as >= was the intent.

        /*eslint-env es6*/
        
        // Bad
        if (a => 2) {
        }
        
        // Good
        if (a >= 2) {
        }

        The rule can also be configured to discourage the use of parens when they are not required:

        /*eslint-env es6*/
        
        // Bad
        (a) => {}
        
        // Good
        a => {}

        Options

        This rule has a string option and an object one.

        String options are:

        • "always" (default) requires parens around arguments in all cases.
        • "as-needed" allows omitting parens when there is only one argument.

        Object properties for variants of the "as-needed" option:

        • "requireForBlockBody": true modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => a);
        a(foo => { if (true) {} });

        Examples of correct code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        () => {};
        (a) => {};
        (a) => a;
        (a) => {'\n'}
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });

        If Statements

        One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:

        /*eslint-env es6*/
        
        var a = 1;
        var b = 2;
        // ...
        if (a => b) {
         console.log('bigger');
        } else {
         console.log('smaller');
        }
        // outputs 'bigger', not smaller as expected

        The contents of the if statement is an arrow function, not a comparison.

        If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.

        /*eslint-env es6*/
        
        var a = 1;
        var b = 0;
        // ...
        if ((a) => b) {
         console.log('truthy value returned');
        } else {
         console.log('falsey value returned');
        }
        // outputs 'truthy value returned'

        The following is another example of this behavior:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = a => b ? c: d;
        // f = ?

        f is an arrow function which takes a as an argument and returns the result of b ? c: d.

        This should be rewritten like so:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = (a) => b ? c: d;

        as-needed

        Examples of incorrect code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => a;
        (a) => {'\n'};
        a.then((foo) => {});
        a.then((foo) => a);
        a((foo) => { if (true) {} });

        Examples of correct code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        () => {};
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        requireForBlockBody

        Examples of incorrect code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => a;
        a => {};
        a => {'\n'};
        a.map((x) => x * x);
        a.map(x => {
          return x * x;
        });
        a.then(foo => {});

        Examples of correct code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => {'\n'};
        a => ({});
        () => {};
        a => a;
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });
        a((foo) => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        Further Reading

        Expected property shorthand.
        Open

            host: host
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Object Literal Shorthand Syntax (object-shorthand)

        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

        Here are a few common examples using the ES5 syntax:

        // properties
        var foo = {
            x: x,
            y: y,
            z: z,
        };
        
        // methods
        var foo = {
            a: function() {},
            b: function() {}
        };

        Now here are ES6 equivalents:

        /*eslint-env es6*/
        
        // properties
        var foo = {x, y, z};
        
        // methods
        var foo = {
            a() {},
            b() {}
        };

        Rule Details

        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

        Each of the following properties would warn:

        /*eslint object-shorthand: "error"*/
        /*eslint-env es6*/
        
        var foo = {
            w: function() {},
            x: function *() {},
            [y]: function() {},
            z: z
        };

        In that case the expected syntax would have been:

        /*eslint object-shorthand: "error"*/
        /*eslint-env es6*/
        
        var foo = {
            w() {},
            *x() {},
            [y]() {},
            z
        };

        This rule does not flag arrow functions inside of object literals. The following will not warn:

        /*eslint object-shorthand: "error"*/
        /*eslint-env es6*/
        
        var foo = {
            x: (y) => y
        };

        Options

        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

        • "always" (default) expects that the shorthand will be used whenever possible.
        • "methods" ensures the method shorthand is used (also applies to generators).
        • "properties" ensures the property shorthand is used (where the key and variable name match).
        • "never" ensures that no property or method shorthand is used in any object literal.
        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

        You can set the option in configuration like this:

        {
            "object-shorthand": ["error", "always"]
        }

        Additionally, the rule takes an optional object configuration:

        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

        avoidQuotes

        {
            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
        }

        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
        /*eslint-env es6*/
        
        var foo = {
            "bar-baz"() {}
        };

        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
        /*eslint-env es6*/
        
        var foo = {
            "bar-baz": function() {},
            "qux": qux
        };

        ignoreConstructors

        {
            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
        }

        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
        /*eslint-env es6*/
        
        var foo = {
            ConstructorFunction: function() {}
        };

        avoidExplicitReturnArrows

        {
            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
        }

        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
        /*eslint-env es6*/
        
        var foo = {
          foo: (bar, baz) => {
            return bar + baz;
          },
        
          qux: (foobar) => {
            return foobar * 2;
          }
        };

        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
        /*eslint-env es6*/
        
        var foo = {
          foo(bar, baz) {
            return bar + baz;
          },
        
          qux: foobar => foobar * 2
        };

        Example of incorrect code for this rule with the "consistent" option:

        /*eslint object-shorthand: [2, "consistent"]*/
        /*eslint-env es6*/
        
        var foo = {
            a,
            b: "foo",
        };

        Examples of correct code for this rule with the "consistent" option:

        /*eslint object-shorthand: [2, "consistent"]*/
        /*eslint-env es6*/
        
        var foo = {
            a: a,
            b: "foo"
        };
        
        var bar = {
            a,
            b,
        };

        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
        /*eslint-env es6*/
        
        var foo = {
            a: a,
            b: b,
        };

        When Not To Use It

        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

        Further Reading

        Object initializer - MDN Source: http://eslint.org/docs/rules/

        Strings must use singlequote.
        Open

          var protocol = process.env.HTTPS === 'true' ? "https" : "http";
        Severity: Minor
        Found in scripts/start.js by eslint

        enforce the consistent use of either backticks, double, or single quotes (quotes)

        JavaScript allows you to define strings in one of three ways: double quotes, single quotes, and backticks (as of ECMAScript 6). For example:

        /*eslint-env es6*/
        
        var double = "double";
        var single = 'single';
        var backtick = `backtick`;    // ES6 only

        Each of these lines creates a string and, in some cases, can be used interchangeably. The choice of how to define strings in a codebase is a stylistic one outside of template literals (which allow embedded of expressions to be interpreted).

        Many codebases require strings to be defined in a consistent manner.

        Rule Details

        This rule enforces the consistent use of either backticks, double, or single quotes.

        Options

        This rule has two options, a string option and an object option.

        String option:

        • "double" (default) requires the use of double quotes wherever possible
        • "single" requires the use of single quotes wherever possible
        • "backtick" requires the use of backticks wherever possible

        Object option:

        • "avoidEscape": true allows strings to use single-quotes or double-quotes so long as the string contains a quote that would have to be escaped otherwise
        • "allowTemplateLiterals": true allows strings to use backticks

        Deprecated: The object property avoid-escape is deprecated; please use the object property avoidEscape instead.

        double

        Examples of incorrect code for this rule with the default "double" option:

        /*eslint quotes: ["error", "double"]*/
        
        var single = 'single';
        var unescaped = 'a string containing "double" quotes';

        Examples of correct code for this rule with the default "double" option:

        /*eslint quotes: ["error", "double"]*/
        /*eslint-env es6*/
        
        var double = "double";
        var backtick = `back\ntick`;  // backticks are allowed due to newline
        var backtick = tag`backtick`; // backticks are allowed due to tag

        single

        Examples of incorrect code for this rule with the "single" option:

        /*eslint quotes: ["error", "single"]*/
        
        var double = "double";
        var unescaped = "a string containing 'single' quotes";

        Examples of correct code for this rule with the "single" option:

        /*eslint quotes: ["error", "single"]*/
        /*eslint-env es6*/
        
        var single = 'single';
        var backtick = `back${x}tick`; // backticks are allowed due to substitution

        backticks

        Examples of incorrect code for this rule with the "backtick" option:

        /*eslint quotes: ["error", "backtick"]*/
        
        var single = 'single';
        var double = "double";
        var unescaped = 'a string containing `backticks`';

        Examples of correct code for this rule with the "backtick" option:

        /*eslint quotes: ["error", "backtick"]*/
        /*eslint-env es6*/
        
        var backtick = `backtick`;

        avoidEscape

        Examples of additional correct code for this rule with the "double", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "double", { "avoidEscape": true }]*/
        
        var single = 'a string containing "double" quotes';

        Examples of additional correct code for this rule with the "single", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "single", { "avoidEscape": true }]*/
        
        var double = "a string containing 'single' quotes";

        Examples of additional correct code for this rule with the "backtick", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "backtick", { "avoidEscape": true }]*/
        
        var double = "a string containing `backtick` quotes"

        allowTemplateLiterals

        Examples of additional correct code for this rule with the "double", { "allowTemplateLiterals": true } options:

        /*eslint quotes: ["error", "double", { "allowTemplateLiterals": true }]*/
        
        var double = "double";
        var double = `double`;

        Examples of additional correct code for this rule with the "single", { "allowTemplateLiterals": true } options:

        /*eslint quotes: ["error", "single", { "allowTemplateLiterals": true }]*/
        
        var single = 'single';
        var single = `single`;

        When Not To Use It

        If you do not need consistency in your string styles, you can safely disable this rule. Source: http://eslint.org/docs/rules/

        Expected parentheses around arrow function argument having a body with curly braces.
        Open

              messages.errors.forEach(message => {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require parens in arrow function arguments (arrow-parens)

        Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.

        Rule Details

        This rule enforces parentheses around arrow function parameters regardless of arity. For example:

        /*eslint-env es6*/
        
        // Bad
        a => {}
        
        // Good
        (a) => {}

        Following this style will help you find arrow functions (=>) which may be mistakenly included in a condition when a comparison such as >= was the intent.

        /*eslint-env es6*/
        
        // Bad
        if (a => 2) {
        }
        
        // Good
        if (a >= 2) {
        }

        The rule can also be configured to discourage the use of parens when they are not required:

        /*eslint-env es6*/
        
        // Bad
        (a) => {}
        
        // Good
        a => {}

        Options

        This rule has a string option and an object one.

        String options are:

        • "always" (default) requires parens around arguments in all cases.
        • "as-needed" allows omitting parens when there is only one argument.

        Object properties for variants of the "as-needed" option:

        • "requireForBlockBody": true modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => a);
        a(foo => { if (true) {} });

        Examples of correct code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        () => {};
        (a) => {};
        (a) => a;
        (a) => {'\n'}
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });

        If Statements

        One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:

        /*eslint-env es6*/
        
        var a = 1;
        var b = 2;
        // ...
        if (a => b) {
         console.log('bigger');
        } else {
         console.log('smaller');
        }
        // outputs 'bigger', not smaller as expected

        The contents of the if statement is an arrow function, not a comparison.

        If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.

        /*eslint-env es6*/
        
        var a = 1;
        var b = 0;
        // ...
        if ((a) => b) {
         console.log('truthy value returned');
        } else {
         console.log('falsey value returned');
        }
        // outputs 'truthy value returned'

        The following is another example of this behavior:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = a => b ? c: d;
        // f = ?

        f is an arrow function which takes a as an argument and returns the result of b ? c: d.

        This should be rewritten like so:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = (a) => b ? c: d;

        as-needed

        Examples of incorrect code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => a;
        (a) => {'\n'};
        a.then((foo) => {});
        a.then((foo) => a);
        a((foo) => { if (true) {} });

        Examples of correct code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        () => {};
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        requireForBlockBody

        Examples of incorrect code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => a;
        a => {};
        a => {'\n'};
        a.map((x) => x * x);
        a.map(x => {
          return x * x;
        });
        a.then(foo => {});

        Examples of correct code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => {'\n'};
        a => ({});
        () => {};
        a => a;
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });
        a((foo) => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        Further Reading

        Missing space before function parentheses.
        Open

          return function(err, req, res){
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow a space before function parenthesis (space-before-function-paren)

        When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

        function withoutSpace(x) {
            // ...
        }
        
        function withSpace (x) {
            // ...
        }
        
        var anonymousWithoutSpace = function() {};
        
        var anonymousWithSpace = function () {};

        Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

        Rule Details

        This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

        Options

        This rule has a string option or an object option:

        {
            "space-before-function-paren": ["error", "always"],
            // or
            "space-before-function-paren": ["error", {
                "anonymous": "always",
                "named": "always",
                "asyncArrow": "ignore"
            }],
        }
        • always (default) requires a space followed by the ( of arguments.
        • never disallows any space followed by the ( of arguments.

        The string option does not check async arrow function expressions for backward compatibility.

        You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

        • anonymous is for anonymous function expressions (e.g. function () {}).
        • named is for named function expressions (e.g. function foo () {}).
        • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

        "always"

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the default "always" option:

        /*eslint space-before-function-paren: "error"*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        "never"

        Examples of incorrect code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        var bar = function foo () {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        Examples of correct code for this rule with the "never" option:

        /*eslint space-before-function-paren: ["error", "never"]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        var bar = function foo() {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        // async arrow function expressions are ignored by default.
        var foo = async () => 1
        var foo = async() => 1

        {"anonymous": "always", "named": "never", "asyncArrow": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };
        
        var foo = async(a) => await a

        Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

        /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };
        
        var foo = async (a) => await a

        {"anonymous": "never", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        var bar = function () {
            // ...
        };
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo () {
            // ...
        }
        
        var bar = function() {
            // ...
        };
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        {"anonymous": "ignore", "named": "always"}

        Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        function foo() {
            // ...
        }
        
        class Foo {
            constructor() {
                // ...
            }
        }
        
        var foo = {
            bar() {
                // ...
            }
        };

        Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

        /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
        /*eslint-env es6*/
        
        var bar = function() {
            // ...
        };
        
        var bar = function () {
            // ...
        };
        
        function foo () {
            // ...
        }
        
        class Foo {
            constructor () {
                // ...
            }
        }
        
        var foo = {
            bar () {
                // ...
            }
        };

        When Not To Use It

        You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

        Related Rules

        Unexpected var, use let or const instead.
        Open

          var protocol = process.env.HTTPS === 'true' ? "https" : "http";
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Expected parentheses around arrow function argument having a body with curly braces.
        Open

              messages.warnings.forEach(message => {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require parens in arrow function arguments (arrow-parens)

        Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.

        Rule Details

        This rule enforces parentheses around arrow function parameters regardless of arity. For example:

        /*eslint-env es6*/
        
        // Bad
        a => {}
        
        // Good
        (a) => {}

        Following this style will help you find arrow functions (=>) which may be mistakenly included in a condition when a comparison such as >= was the intent.

        /*eslint-env es6*/
        
        // Bad
        if (a => 2) {
        }
        
        // Good
        if (a >= 2) {
        }

        The rule can also be configured to discourage the use of parens when they are not required:

        /*eslint-env es6*/
        
        // Bad
        (a) => {}
        
        // Good
        a => {}

        Options

        This rule has a string option and an object one.

        String options are:

        • "always" (default) requires parens around arguments in all cases.
        • "as-needed" allows omitting parens when there is only one argument.

        Object properties for variants of the "as-needed" option:

        • "requireForBlockBody": true modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => a);
        a(foo => { if (true) {} });

        Examples of correct code for this rule with the default "always" option:

        /*eslint arrow-parens: ["error", "always"]*/
        /*eslint-env es6*/
        
        () => {};
        (a) => {};
        (a) => a;
        (a) => {'\n'}
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });

        If Statements

        One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:

        /*eslint-env es6*/
        
        var a = 1;
        var b = 2;
        // ...
        if (a => b) {
         console.log('bigger');
        } else {
         console.log('smaller');
        }
        // outputs 'bigger', not smaller as expected

        The contents of the if statement is an arrow function, not a comparison.

        If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.

        /*eslint-env es6*/
        
        var a = 1;
        var b = 0;
        // ...
        if ((a) => b) {
         console.log('truthy value returned');
        } else {
         console.log('falsey value returned');
        }
        // outputs 'truthy value returned'

        The following is another example of this behavior:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = a => b ? c: d;
        // f = ?

        f is an arrow function which takes a as an argument and returns the result of b ? c: d.

        This should be rewritten like so:

        /*eslint-env es6*/
        
        var a = 1, b = 2, c = 3, d = 4;
        var f = (a) => b ? c: d;

        as-needed

        Examples of incorrect code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => a;
        (a) => {'\n'};
        a.then((foo) => {});
        a.then((foo) => a);
        a((foo) => { if (true) {} });

        Examples of correct code for this rule with the "as-needed" option:

        /*eslint arrow-parens: ["error", "as-needed"]*/
        /*eslint-env es6*/
        
        () => {};
        a => {};
        a => a;
        a => {'\n'};
        a.then(foo => {});
        a.then(foo => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        requireForBlockBody

        Examples of incorrect code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => a;
        a => {};
        a => {'\n'};
        a.map((x) => x * x);
        a.map(x => {
          return x * x;
        });
        a.then(foo => {});

        Examples of correct code for the { "requireForBlockBody": true } option:

        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
        /*eslint-env es6*/
        
        (a) => {};
        (a) => {'\n'};
        a => ({});
        () => {};
        a => a;
        a.then((foo) => {});
        a.then((foo) => { if (true) {} });
        a((foo) => { if (true) {} });
        (a, b, c) => a;
        (a = 10) => a;
        ([a, b]) => a;
        ({a, b}) => a;

        Further Reading

        Unexpected var, use let or const instead.
        Open

          var proxy = require(paths.appPackageJson).proxy;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

            var hpm = httpProxyMiddleware(pathname => mayProxy.test(pathname), {
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected string concatenation.
        Open

              openBrowser(protocol + '://' + host + ':' + port + '/');
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Unexpected string concatenation.
        Open

              console.log('To create a production build, use ' + chalk.cyan(cli + ' run build') + '.');
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Unexpected var, use let or const instead.
        Open

            var host = req.headers && req.headers.host;
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected string concatenation.
        Open

              chalk.red('Proxy error:') + ' Could not proxy request ' + chalk.cyan(req.url) +
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Expected method shorthand.
        Open

              onProxyReq: function(proxyReq, req, res) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Object Literal Shorthand Syntax (object-shorthand)

        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

        Here are a few common examples using the ES5 syntax:

        // properties
        var foo = {
            x: x,
            y: y,
            z: z,
        };
        
        // methods
        var foo = {
            a: function() {},
            b: function() {}
        };

        Now here are ES6 equivalents:

        /*eslint-env es6*/
        
        // properties
        var foo = {x, y, z};
        
        // methods
        var foo = {
            a() {},
            b() {}
        };

        Rule Details

        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

        Each of the following properties would warn:

        /*eslint object-shorthand: "error"*/
        /*eslint-env es6*/
        
        var foo = {
            w: function() {},
            x: function *() {},
            [y]: function() {},
            z: z
        };

        In that case the expected syntax would have been:

        /*eslint object-shorthand: "error"*/
        /*eslint-env es6*/
        
        var foo = {
            w() {},
            *x() {},
            [y]() {},
            z
        };

        This rule does not flag arrow functions inside of object literals. The following will not warn:

        /*eslint object-shorthand: "error"*/
        /*eslint-env es6*/
        
        var foo = {
            x: (y) => y
        };

        Options

        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

        • "always" (default) expects that the shorthand will be used whenever possible.
        • "methods" ensures the method shorthand is used (also applies to generators).
        • "properties" ensures the property shorthand is used (where the key and variable name match).
        • "never" ensures that no property or method shorthand is used in any object literal.
        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

        You can set the option in configuration like this:

        {
            "object-shorthand": ["error", "always"]
        }

        Additionally, the rule takes an optional object configuration:

        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

        avoidQuotes

        {
            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
        }

        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
        /*eslint-env es6*/
        
        var foo = {
            "bar-baz"() {}
        };

        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
        /*eslint-env es6*/
        
        var foo = {
            "bar-baz": function() {},
            "qux": qux
        };

        ignoreConstructors

        {
            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
        }

        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
        /*eslint-env es6*/
        
        var foo = {
            ConstructorFunction: function() {}
        };

        avoidExplicitReturnArrows

        {
            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
        }

        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
        /*eslint-env es6*/
        
        var foo = {
          foo: (bar, baz) => {
            return bar + baz;
          },
        
          qux: (foobar) => {
            return foobar * 2;
          }
        };

        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
        /*eslint-env es6*/
        
        var foo = {
          foo(bar, baz) {
            return bar + baz;
          },
        
          qux: foobar => foobar * 2
        };

        Example of incorrect code for this rule with the "consistent" option:

        /*eslint object-shorthand: [2, "consistent"]*/
        /*eslint-env es6*/
        
        var foo = {
            a,
            b: "foo",
        };

        Examples of correct code for this rule with the "consistent" option:

        /*eslint object-shorthand: [2, "consistent"]*/
        /*eslint-env es6*/
        
        var foo = {
            a: a,
            b: "foo"
        };
        
        var bar = {
            a,
            b,
        };

        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
        /*eslint-env es6*/
        
        var foo = {
            a: a,
            b: b,
        };

        When Not To Use It

        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

        Further Reading

        Object initializer - MDN Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

          var host = process.env.HOST || 'localhost';
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Unexpected var, use let or const instead.
        Open

            var question =
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Missing space before opening brace.
        Open

          return function(err, req, res){
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Or Disallow Space Before Blocks (space-before-blocks)

        Consistency is an important part of any style guide. While it is a personal preference where to put the opening brace of blocks, it should be consistent across a whole project. Having an inconsistent style distracts the reader from seeing the important parts of the code.

        Rule Details

        This rule will enforce consistency of spacing before blocks. It is only applied on blocks that don’t begin on a new line.

        • This rule ignores spacing which is between => and a block. The spacing is handled by the arrow-spacing rule.
        • This rule ignores spacing which is between a keyword and a block. The spacing is handled by the keyword-spacing rule.

        Options

        This rule takes one argument. If it is "always" then blocks must always have at least one preceding space. If "never" then all blocks should never have any preceding space. If different spacing is desired for function blocks, keyword blocks and classes, an optional configuration object can be passed as the rule argument to configure the cases separately.

        ( e.g. { "functions": "never", "keywords": "always", "classes": "always" } )

        The default is "always".

        "always"

        Examples of incorrect code for this rule with the "always" option:

        /*eslint space-before-blocks: "error"*/
        
        if (a){
            b();
        }
        
        function a(){}
        
        for (;;){
            b();
        }
        
        try {} catch(a){}
        
        class Foo{
          constructor(){}
        }

        Examples of correct code for this rule with the "always" option:

        /*eslint space-before-blocks: "error"*/
        
        if (a) {
            b();
        }
        
        if (a) {
            b();
        } else{ /*no error. this is checked by `keyword-spacing` rule.*/
            c();
        }
        
        
        function a() {}
        
        for (;;) {
            b();
        }
        
        try {} catch(a) {}

        "never"

        Examples of incorrect code for this rule with the "never" option:

        /*eslint space-before-blocks: ["error", "never"]*/
        
        if (a) {
            b();
        }
        
        function a() {}
        
        for (;;) {
            b();
        }
        
        try {} catch(a) {}

        Examples of correct code for this rule with the "never" option:

        /*eslint space-before-blocks: ["error", "never"]*/
        
        if (a){
            b();
        }
        
        function a(){}
        
        for (;;){
            b();
        }
        
        try{} catch(a){}
        
        class Foo{
          constructor(){}
        }

        Examples of incorrect code for this rule when configured { "functions": "never", "keywords": "always", "classes": "never" }:

        /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
        /*eslint-env es6*/
        
        function a() {}
        
        try {} catch(a){}
        
        class Foo{
          constructor() {}
        }

        Examples of correct code for this rule when configured { "functions": "never", "keywords": "always", "classes": "never" }:

        /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
        /*eslint-env es6*/
        
        for (;;) {
          // ...
        }
        
        describe(function(){
          // ...
        });
        
        class Foo {
          constructor(){}
        }

        Examples of incorrect code for this rule when configured { "functions": "always", "keywords": "never", "classes": "never" }:

        /*eslint space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
        /*eslint-env es6*/
        
        function a(){}
        
        try {} catch(a) {}
        
        class Foo {
          constructor(){}
        }

        Examples of correct code for this rule when configured { "functions": "always", "keywords": "never", "classes": "never" }:

        /*eslint space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
        /*eslint-env es6*/
        
        if (a){
          b();
        }
        
        var a = function() {}
        
        class Foo{
          constructor() {}
        }

        Examples of incorrect code for this rule when configured { "functions": "never", "keywords": "never", "classes": "always" }:

        /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
        /*eslint-env es6*/
        
        class Foo{
          constructor(){}
        }

        Examples of correct code for this rule when configured { "functions": "never", "keywords": "never", "classes": "always" }:

        /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
        /*eslint-env es6*/
        
        class Foo {
          constructor(){}
        }

        When Not To Use It

        You can turn this rule off if you are not concerned with the consistency of spacing before blocks.

        Related Rules

        Unexpected var, use let or const instead.
        Open

            var existingProcess = getProcessForPort(DEFAULT_PORT);
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

            var question =
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected string concatenation.
        Open

              console.log('To create a production build, use ' + chalk.cyan(cli + ' run build') + '.');
        Severity: Minor
        Found in scripts/start.js by eslint

        Suggest using template literals instead of string concatenation. (prefer-template)

        In ES2015 (ES6), we can use template literals instead of string concatenation.

        var str = "Hello, " + name + "!";
        /*eslint-env es6*/
        
        var str = `Hello, ${name}!`;

        Rule Details

        This rule is aimed to flag usage of + operators with strings.

        Examples

        Examples of incorrect code for this rule:

        /*eslint prefer-template: "error"*/
        
        var str = "Hello, " + name + "!";
        var str = "Time: " + (12 * 60 * 60 * 1000);

        Examples of correct code for this rule:

        /*eslint prefer-template: "error"*/
        /*eslint-env es6*/
        
        var str = "Hello World!";
        var str = `Hello, ${name}!`;
        var str = `Time: ${12 * 60 * 60 * 1000}`;
        
        // This is reported by `no-useless-concat`.
        var str = "Hello, " + "World!";

        When Not To Use It

        This rule should not be used in ES3/5 environments.

        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

        Related Rules

        Strings must use singlequote.
        Open

          var protocol = process.env.HTTPS === 'true' ? "https" : "http";
        Severity: Minor
        Found in scripts/start.js by eslint

        enforce the consistent use of either backticks, double, or single quotes (quotes)

        JavaScript allows you to define strings in one of three ways: double quotes, single quotes, and backticks (as of ECMAScript 6). For example:

        /*eslint-env es6*/
        
        var double = "double";
        var single = 'single';
        var backtick = `backtick`;    // ES6 only

        Each of these lines creates a string and, in some cases, can be used interchangeably. The choice of how to define strings in a codebase is a stylistic one outside of template literals (which allow embedded of expressions to be interpreted).

        Many codebases require strings to be defined in a consistent manner.

        Rule Details

        This rule enforces the consistent use of either backticks, double, or single quotes.

        Options

        This rule has two options, a string option and an object option.

        String option:

        • "double" (default) requires the use of double quotes wherever possible
        • "single" requires the use of single quotes wherever possible
        • "backtick" requires the use of backticks wherever possible

        Object option:

        • "avoidEscape": true allows strings to use single-quotes or double-quotes so long as the string contains a quote that would have to be escaped otherwise
        • "allowTemplateLiterals": true allows strings to use backticks

        Deprecated: The object property avoid-escape is deprecated; please use the object property avoidEscape instead.

        double

        Examples of incorrect code for this rule with the default "double" option:

        /*eslint quotes: ["error", "double"]*/
        
        var single = 'single';
        var unescaped = 'a string containing "double" quotes';

        Examples of correct code for this rule with the default "double" option:

        /*eslint quotes: ["error", "double"]*/
        /*eslint-env es6*/
        
        var double = "double";
        var backtick = `back\ntick`;  // backticks are allowed due to newline
        var backtick = tag`backtick`; // backticks are allowed due to tag

        single

        Examples of incorrect code for this rule with the "single" option:

        /*eslint quotes: ["error", "single"]*/
        
        var double = "double";
        var unescaped = "a string containing 'single' quotes";

        Examples of correct code for this rule with the "single" option:

        /*eslint quotes: ["error", "single"]*/
        /*eslint-env es6*/
        
        var single = 'single';
        var backtick = `back${x}tick`; // backticks are allowed due to substitution

        backticks

        Examples of incorrect code for this rule with the "backtick" option:

        /*eslint quotes: ["error", "backtick"]*/
        
        var single = 'single';
        var double = "double";
        var unescaped = 'a string containing `backticks`';

        Examples of correct code for this rule with the "backtick" option:

        /*eslint quotes: ["error", "backtick"]*/
        /*eslint-env es6*/
        
        var backtick = `backtick`;

        avoidEscape

        Examples of additional correct code for this rule with the "double", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "double", { "avoidEscape": true }]*/
        
        var single = 'a string containing "double" quotes';

        Examples of additional correct code for this rule with the "single", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "single", { "avoidEscape": true }]*/
        
        var double = "a string containing 'single' quotes";

        Examples of additional correct code for this rule with the "backtick", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "backtick", { "avoidEscape": true }]*/
        
        var double = "a string containing `backtick` quotes"

        allowTemplateLiterals

        Examples of additional correct code for this rule with the "double", { "allowTemplateLiterals": true } options:

        /*eslint quotes: ["error", "double", { "allowTemplateLiterals": true }]*/
        
        var double = "double";
        var double = `double`;

        Examples of additional correct code for this rule with the "single", { "allowTemplateLiterals": true } options:

        /*eslint quotes: ["error", "single", { "allowTemplateLiterals": true }]*/
        
        var single = 'single';
        var single = `single`;

        When Not To Use It

        If you do not need consistency in your string styles, you can safely disable this rule. Source: http://eslint.org/docs/rules/

        Unexpected unnamed function.
        Open

          return function(err, req, res){
        Severity: Minor
        Found in scripts/start.js by eslint

        Require or disallow named function expressions (func-names)

        A pattern that's becoming more common is to give function expressions names to aid in debugging. For example:

        Foo.prototype.bar = function bar() {};

        Adding the second bar in the above example is optional. If you leave off the function name then when the function throws an exception you are likely to get something similar to anonymous function in the stack trace. If you provide the optional name for a function expression then you will get the name of the function expression in the stack trace.

        Rule Details

        This rule can enforce or disallow the use of named function expressions.

        Options

        This rule has a string option:

        • "always" (default) requires function expressions to have a name
        • "as-needed" requires function expressions to have a name, if the name cannot be assigned automatically in an ES6 environment
        • "never" disallows named function expressions, except in recursive functions, where a name is needed

        always

        Examples of incorrect code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "always" option:

        /*eslint func-names: ["error", "always"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        as-needed

        ECMAScript 6 introduced a name property on all functions. The value of name is determined by evaluating the code around the function to see if a name can be inferred. For example, a function assigned to a variable will automatically have a name property equal to the name of the variable. The value of name is then used in stack traces for easier debugging.

        Examples of incorrect code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Examples of correct code for this rule with the default "as-needed" option:

        /*eslint func-names: ["error", "as-needed"]*/
        
        var bar = function() {};
        
        (function bar() {
            // ...
        }())

        never

        Examples of incorrect code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function bar() {};
        
        (function bar() {
            // ...
        }())

        Examples of correct code for this rule with the "never" option:

        /*eslint func-names: ["error", "never"]*/
        
        Foo.prototype.bar = function() {};
        
        (function() {
            // ...
        }())

        Further Reading

        Compatibility

        Unexpected require().
        Open

          var proxy = require(paths.appPackageJson).proxy;
        Severity: Minor
        Found in scripts/start.js by eslint

        Enforce require() on the top-level module scope (global-require)

        In Node.js, module dependencies are included using the require() function, such as:

        var fs = require("fs");

        While require() may be called anywhere in code, some style guides prescribe that it should be called only in the top level of a module to make it easier to identify dependencies. For instance, it's arguably harder to identify dependencies when they are deeply nested inside of functions and other statements:

        function foo() {
        
            if (condition) {
                var fs = require("fs");
            }
        }

        Since require() does a synchronous load, it can cause performance problems when used in other locations.

        Further, ES6 modules mandate that import and export statements can only occur in the top level of the module's body.

        Rule Details

        This rule requires all calls to require() to be at the top level of the module, similar to ES6 import and export statements, which also can occur only at the top level.

        Examples of incorrect code for this rule:

        /*eslint global-require: "error"*/
        /*eslint-env es6*/
        
        // calling require() inside of a function is not allowed
        function readFile(filename, callback) {
            var fs = require('fs');
            fs.readFile(filename, callback)
        }
        
        // conditional requires like this are also not allowed
        if (DEBUG) { require('debug'); }
        
        // a require() in a switch statement is also flagged
        switch(x) { case '1': require('1'); break; }
        
        // you may not require() inside an arrow function body
        var getModule = (name) => require(name);
        
        // you may not require() inside of a function body as well
        function getModule(name) { return require(name); }
        
        // you may not require() inside of a try/catch block
        try {
            require(unsafeModule);
        } catch(e) {
            console.log(e);
        }

        Examples of correct code for this rule:

        /*eslint global-require: "error"*/
        
        // all these variations of require() are ok
        require('x');
        var y = require('y');
        var z;
        z = require('z').initialize();
        
        // requiring a module and using it in a function is ok
        var fs = require('fs');
        function readFile(filename, callback) {
            fs.readFile(filename, callback)
        }
        
        // you can use a ternary to determine which module to require
        var logger = DEBUG ? require('dev-logger') : require('logger');
        
        // if you want you can require() at the end of your module
        function doSomethingA() {}
        function doSomethingB() {}
        var x = require("x"),
            z = require("z");

        When Not To Use It

        If you have a module that must be initialized with information that comes from the file-system or if a module is only used in very rare situations and will cause significant overhead to load it may make sense to disable the rule. If you need to require() an optional dependency inside of a try/catch, you can disable this rule for just that dependency using the // eslint-disable-line global-require comment. Source: http://eslint.org/docs/rules/

        All 'var' declarations must be at the top of the function scope.
        Open

            var mayProxy = /^(?!\/(index\.html$|.*\.hot-update\.json$|sockjs-node\/)).*$/;
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        All 'var' declarations must be at the top of the function scope.
        Open

            var hpm = httpProxyMiddleware(pathname => mayProxy.test(pathname), {
        Severity: Minor
        Found in scripts/start.js by eslint

        Require Variable Declarations to be at the top of their scope (vars-on-top)

        The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

        Rule Details

        This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

        Examples of incorrect code for this rule:

        /*eslint vars-on-top: "error"*/
        
        // Variable declarations in a block:
        function doSomething() {
            var first;
            if (true) {
                first = true;
            }
            var second;
        }
        
        // Variable declaration in for initializer:
        function doSomething() {
            for (var i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        // Variables after other statements:
        f();
        var a;

        Examples of correct code for this rule:

        /*eslint vars-on-top: "error"*/
        
        function doSomething() {
            var first;
            var second; //multiple declarations are allowed at the top
            if (true) {
                first = true;
            }
        }
        
        function doSomething() {
            var i;
            for (i=0; i<10; i++) {}
        }
        /*eslint vars-on-top: "error"*/
        
        var a;
        f();
        /*eslint vars-on-top: "error"*/
        
        // Directives may precede variable declarations.
        "use strict";
        var a;
        f();
        
        // Comments can describe variables.
        function doSomething() {
            // this is the first var.
            var first;
            // this is the second var.
            var second
        }

        Further Reading

        Unexpected var, use let or const instead.
        Open

          var devServer = new WebpackDevServer(compiler, {
        Severity: Minor
        Found in scripts/start.js by eslint

        require let or const instead of var (no-var)

        ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

        var count = people.length;
        var enoughFood = count > sandwiches.length;
        
        if (enoughFood) {
            var count = sandwiches.length; // accidentally overriding the count variable
            console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
        }
        
        // our count variable is no longer accurate
        console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

        Rule Details

        This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

        Examples

        Examples of incorrect code for this rule:

        /*eslint no-var: "error"*/
        
        var x = "y";
        var CONFIG = {};

        Examples of correct code for this rule:

        /*eslint no-var: "error"*/
        /*eslint-env es6*/
        
        let x = "y";
        const CONFIG = {};

        When Not To Use It

        In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

        Strings must use singlequote.
        Open

            https: protocol === "https",
        Severity: Minor
        Found in scripts/start.js by eslint

        enforce the consistent use of either backticks, double, or single quotes (quotes)

        JavaScript allows you to define strings in one of three ways: double quotes, single quotes, and backticks (as of ECMAScript 6). For example:

        /*eslint-env es6*/
        
        var double = "double";
        var single = 'single';
        var backtick = `backtick`;    // ES6 only

        Each of these lines creates a string and, in some cases, can be used interchangeably. The choice of how to define strings in a codebase is a stylistic one outside of template literals (which allow embedded of expressions to be interpreted).

        Many codebases require strings to be defined in a consistent manner.

        Rule Details

        This rule enforces the consistent use of either backticks, double, or single quotes.

        Options

        This rule has two options, a string option and an object option.

        String option:

        • "double" (default) requires the use of double quotes wherever possible
        • "single" requires the use of single quotes wherever possible
        • "backtick" requires the use of backticks wherever possible

        Object option:

        • "avoidEscape": true allows strings to use single-quotes or double-quotes so long as the string contains a quote that would have to be escaped otherwise
        • "allowTemplateLiterals": true allows strings to use backticks

        Deprecated: The object property avoid-escape is deprecated; please use the object property avoidEscape instead.

        double

        Examples of incorrect code for this rule with the default "double" option:

        /*eslint quotes: ["error", "double"]*/
        
        var single = 'single';
        var unescaped = 'a string containing "double" quotes';

        Examples of correct code for this rule with the default "double" option:

        /*eslint quotes: ["error", "double"]*/
        /*eslint-env es6*/
        
        var double = "double";
        var backtick = `back\ntick`;  // backticks are allowed due to newline
        var backtick = tag`backtick`; // backticks are allowed due to tag

        single

        Examples of incorrect code for this rule with the "single" option:

        /*eslint quotes: ["error", "single"]*/
        
        var double = "double";
        var unescaped = "a string containing 'single' quotes";

        Examples of correct code for this rule with the "single" option:

        /*eslint quotes: ["error", "single"]*/
        /*eslint-env es6*/
        
        var single = 'single';
        var backtick = `back${x}tick`; // backticks are allowed due to substitution

        backticks

        Examples of incorrect code for this rule with the "backtick" option:

        /*eslint quotes: ["error", "backtick"]*/
        
        var single = 'single';
        var double = "double";
        var unescaped = 'a string containing `backticks`';

        Examples of correct code for this rule with the "backtick" option:

        /*eslint quotes: ["error", "backtick"]*/
        /*eslint-env es6*/
        
        var backtick = `backtick`;

        avoidEscape

        Examples of additional correct code for this rule with the "double", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "double", { "avoidEscape": true }]*/
        
        var single = 'a string containing "double" quotes';

        Examples of additional correct code for this rule with the "single", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "single", { "avoidEscape": true }]*/
        
        var double = "a string containing 'single' quotes";

        Examples of additional correct code for this rule with the "backtick", { "avoidEscape": true } options:

        /*eslint quotes: ["error", "backtick", { "avoidEscape": true }]*/
        
        var double = "a string containing `backtick` quotes"

        allowTemplateLiterals

        Examples of additional correct code for this rule with the "double", { "allowTemplateLiterals": true } options:

        /*eslint quotes: ["error", "double", { "allowTemplateLiterals": true }]*/
        
        var double = "double";
        var double = `double`;

        Examples of additional correct code for this rule with the "single", { "allowTemplateLiterals": true } options:

        /*eslint quotes: ["error", "single", { "allowTemplateLiterals": true }]*/
        
        var single = 'single';
        var single = `single`;

        When Not To Use It

        If you do not need consistency in your string styles, you can safely disable this rule. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

              console.log(chalk.green('Compiled successfully!'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log('The app is running at:');
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log('  ' + chalk.cyan(protocol + '://' + host + ':' + port + '/'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

            console.log('Compiling...');
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

                console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Missing trailing comma.
        Open

              ws: true
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow trailing commas (comma-dangle)

        Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

        var foo = {
            bar: "baz",
            qux: "quux",
        };

        Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

        Less clear:

        var foo = {
        -    bar: "baz",
        -    qux: "quux"
        +    bar: "baz"
         };

        More clear:

        var foo = {
             bar: "baz",
        -    qux: "quux",
         };

        Rule Details

        This rule enforces consistent use of trailing commas in object and array literals.

        Options

        This rule has a string option or an object option:

        {
            "comma-dangle": ["error", "never"],
            // or
            "comma-dangle": ["error", {
                "arrays": "never",
                "objects": "never",
                "imports": "never",
                "exports": "never",
                "functions": "ignore",
            }]
        }
        • "never" (default) disallows trailing commas
        • "always" requires trailing commas
        • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
        • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

        Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

        You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

        • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
        • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
        • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
        • exports is for export declarations of ES Modules. (e.g. export {a,};)
        • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
          functions is set to "ignore" by default for consistency with the string option.

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        Examples of correct code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        always-multiline

        Examples of incorrect code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        only-multiline

        Examples of incorrect code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];

        Examples of correct code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        functions

        Examples of incorrect code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        Examples of correct code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of incorrect code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of correct code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        When Not To Use It

        You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

            console.log(chalk.red('Something is already running on port ' + DEFAULT_PORT + '.'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              return console.log(err);
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log('You may use special comments to disable some warnings.');
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

            console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

            console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log('Use ' + chalk.yellow('// eslint-disable-next-line') + ' to ignore the next line.');
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

                console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Missing trailing comma.
        Open

              ' from ' + chalk.cyan(host) + ' to ' + chalk.cyan(proxy) + '.'
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow trailing commas (comma-dangle)

        Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

        var foo = {
            bar: "baz",
            qux: "quux",
        };

        Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

        Less clear:

        var foo = {
        -    bar: "baz",
        -    qux: "quux"
        +    bar: "baz"
         };

        More clear:

        var foo = {
             bar: "baz",
        -    qux: "quux",
         };

        Rule Details

        This rule enforces consistent use of trailing commas in object and array literals.

        Options

        This rule has a string option or an object option:

        {
            "comma-dangle": ["error", "never"],
            // or
            "comma-dangle": ["error", {
                "arrays": "never",
                "objects": "never",
                "imports": "never",
                "exports": "never",
                "functions": "ignore",
            }]
        }
        • "never" (default) disallows trailing commas
        • "always" requires trailing commas
        • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
        • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

        Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

        You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

        • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
        • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
        • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
        • exports is for export declarations of ES Modules. (e.g. export {a,};)
        • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
          functions is set to "ignore" by default for consistency with the string option.

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        Examples of correct code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        always-multiline

        Examples of incorrect code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        only-multiline

        Examples of incorrect code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];

        Examples of correct code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        functions

        Examples of incorrect code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        Examples of correct code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of incorrect code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of correct code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        When Not To Use It

        You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

            console.log(
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log(chalk.red('Instead, the type of "proxy" was "' + typeof proxy + '".'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

                console.log(message);
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Missing trailing comma.
        Open

              host + ' to ' + proxy + ' (' + err.code + ').'
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow trailing commas (comma-dangle)

        Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

        var foo = {
            bar: "baz",
            qux: "quux",
        };

        Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

        Less clear:

        var foo = {
        -    bar: "baz",
        -    qux: "quux"
        +    bar: "baz"
         };

        More clear:

        var foo = {
             bar: "baz",
        -    qux: "quux",
         };

        Rule Details

        This rule enforces consistent use of trailing commas in object and array literals.

        Options

        This rule has a string option or an object option:

        {
            "comma-dangle": ["error", "never"],
            // or
            "comma-dangle": ["error", {
                "arrays": "never",
                "objects": "never",
                "imports": "never",
                "exports": "never",
                "functions": "ignore",
            }]
        }
        • "never" (default) disallows trailing commas
        • "always" requires trailing commas
        • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
        • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

        Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

        You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

        • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
        • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
        • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
        • exports is for export declarations of ES Modules. (e.g. export {a,};)
        • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
          functions is set to "ignore" by default for consistency with the string option.

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        Examples of correct code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        always-multiline

        Examples of incorrect code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        only-multiline

        Examples of incorrect code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];

        Examples of correct code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        functions

        Examples of incorrect code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        Examples of correct code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of incorrect code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of correct code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        When Not To Use It

        You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

              console.log(chalk.red('Either remove "proxy" from package.json, or make it a string.'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        'result' is defined but never used.
        Open

          devServer.listen(port, (err, result) => {
        Severity: Minor
        Found in scripts/start.js by eslint

        Disallow Unused Variables (no-unused-vars)

        Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

        Rule Details

        This rule is aimed at eliminating unused variables, functions, and parameters of functions.

        A variable is considered to be used if any of the following are true:

        • It represents a function that is called (doSomething())
        • It is read (var y = x)
        • It is passed into a function as an argument (doSomething(x))
        • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

        A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

        Examples of incorrect code for this rule:

        /*eslint no-unused-vars: "error"*/
        /*global some_unused_var*/
        
        // It checks variables you have defined as global
        some_unused_var = 42;
        
        var x;
        
        // Write-only variables are not considered as used.
        var y = 10;
        y = 5;
        
        // A read for a modification of itself is not considered as used.
        var z = 0;
        z = z + 1;
        
        // By default, unused arguments cause warnings.
        (function(foo) {
            return 5;
        })();
        
        // Unused recursive functions also cause warnings.
        function fact(n) {
            if (n < 2) return 1;
            return n * fact(n - 1);
        }
        
        // When a function definition destructures an array, unused entries from the array also cause warnings.
        function getY([x, y]) {
            return y;
        }

        Examples of correct code for this rule:

        /*eslint no-unused-vars: "error"*/
        
        var x = 10;
        alert(x);
        
        // foo is considered used here
        myFunc(function foo() {
            // ...
        }.bind(this));
        
        (function(foo) {
            return foo;
        })();
        
        var myFunc;
        myFunc = setTimeout(function() {
            // myFunc is considered used
            myFunc();
        }, 50);
        
        // Only the second argument from the descructured array is used.
        function getY([, y]) {
            return y;
        }

        exported

        In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

        Note that /* exported */ has no effect for any of the following:

        • when the environment is node or commonjs
        • when parserOptions.sourceType is module
        • when ecmaFeatures.globalReturn is true

        The line comment // exported variableName will not work as exported is not line-specific.

        Examples of correct code for /* exported variableName */ operation:

        /* exported global_var */
        
        var global_var = 42;

        Options

        This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

        By default this rule is enabled with all option for variables and after-used for arguments.

        {
            "rules": {
                "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
            }
        }

        vars

        The vars option has two settings:

        • all checks all variables for usage, including those in the global scope. This is the default setting.
        • local checks only that locally-declared variables are used but will allow global variables to be unused.

        vars: local

        Examples of correct code for the { "vars": "local" } option:

        /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
        /*global some_unused_var */
        
        some_unused_var = 42;

        varsIgnorePattern

        The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

        Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

        /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
        
        var firstVarIgnored = 1;
        var secondVar = 2;
        console.log(secondVar);

        args

        The args option has three settings:

        • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
        • all - all named arguments must be used.
        • none - do not check arguments.

        args: after-used

        Examples of incorrect code for the default { "args": "after-used" } option:

        /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
        
        // 1 error
        // "baz" is defined but never used
        (function(foo, bar, baz) {
            return bar;
        })();

        Examples of correct code for the default { "args": "after-used" } option:

        /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
        
        (function(foo, bar, baz) {
            return baz;
        })();

        args: all

        Examples of incorrect code for the { "args": "all" } option:

        /*eslint no-unused-vars: ["error", { "args": "all" }]*/
        
        // 2 errors
        // "foo" is defined but never used
        // "baz" is defined but never used
        (function(foo, bar, baz) {
            return bar;
        })();

        args: none

        Examples of correct code for the { "args": "none" } option:

        /*eslint no-unused-vars: ["error", { "args": "none" }]*/
        
        (function(foo, bar, baz) {
            return bar;
        })();

        ignoreRestSiblings

        The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

        Examples of correct code for the { "ignoreRestSiblings": true } option:

        /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
        // 'type' is ignored because it has a rest property sibling.
        var { type, ...coords } = data;

        argsIgnorePattern

        The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

        Examples of correct code for the { "argsIgnorePattern": "^_" } option:

        /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
        
        function foo(x, _y) {
            return x + 1;
        }
        foo();

        caughtErrors

        The caughtErrors option is used for catch block arguments validation.

        It has two settings:

        • none - do not check error objects. This is the default setting.
        • all - all named arguments must be used.

        caughtErrors: none

        Not specifying this rule is equivalent of assigning it to none.

        Examples of correct code for the { "caughtErrors": "none" } option:

        /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
        
        try {
            //...
        } catch (err) {
            console.error("errors");
        }

        caughtErrors: all

        Examples of incorrect code for the { "caughtErrors": "all" } option:

        /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
        
        // 1 error
        // "err" is defined but never used
        try {
            //...
        } catch (err) {
            console.error("errors");
        }

        caughtErrorsIgnorePattern

        The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

        Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

        /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
        
        try {
            //...
        } catch (ignoreErr) {
            console.error("errors");
        }

        When Not To Use It

        If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

        Expected to return a value at the end of arrow function.
        Open

          devServer.listen(port, (err, result) => {
        Severity: Minor
        Found in scripts/start.js by eslint

        require return statements to either always or never specify values (consistent-return)

        Unlike statically-typed languages which enforce that a function returns a specified type of value, JavaScript allows different code paths in a function to return different types of values.

        A confusing aspect of JavaScript is that a function returns undefined if any of the following are true:

        • it does not execute a return statement before it exits
        • it executes return which does not specify a value explicitly
        • it executes return undefined
        • it executes return void followed by an expression (for example, a function call)
        • it executes return followed by any other expression which evaluates to undefined

        If any code paths in a function return a value explicitly but some code path do not return a value explicitly, it might be a typing mistake, especially in a large function. In the following example:

        • a code path through the function returns a Boolean value true
        • another code path does not return a value explicitly, therefore returns undefined implicitly
        function doSomething(condition) {
            if (condition) {
                return true;
            } else {
                return;
            }
        }

        Rule Details

        This rule requires return statements to either always or never specify values. This rule ignores function definitions where the name begins with an uppercase letter, because constructors (when invoked with the new operator) return the instantiated object implicitly if they do not return another object explicitly.

        Examples of incorrect code for this rule:

        /*eslint consistent-return: "error"*/
        
        function doSomething(condition) {
            if (condition) {
                return true;
            } else {
                return;
            }
        }
        
        function doSomething(condition) {
            if (condition) {
                return true;
            }
        }

        Examples of correct code for this rule:

        /*eslint consistent-return: "error"*/
        
        function doSomething(condition) {
            if (condition) {
                return true;
            } else {
                return false;
            }
        }
        
        function Foo() {
            if (!(this instanceof Foo)) {
                return new Foo();
            }
        
            this.a = 0;
        }

        Options

        This rule has an object option:

        • "treatUndefinedAsUnspecified": false (default) always either specify values or return undefined implicitly only.
        • "treatUndefinedAsUnspecified": true always either specify values or return undefined explicitly or implicitly.

        treatUndefinedAsUnspecified

        Examples of incorrect code for this rule with the default { "treatUndefinedAsUnspecified": false } option:

        /*eslint consistent-return: ["error", { "treatUndefinedAsUnspecified": false }]*/
        
        function foo(callback) {
            if (callback) {
                return void callback();
            }
            // no return statement
        }
        
        function bar(condition) {
            if (condition) {
                return undefined;
            }
            // no return statement
        }

        Examples of incorrect code for this rule with the { "treatUndefinedAsUnspecified": true } option:

        /*eslint consistent-return: ["error", { "treatUndefinedAsUnspecified": true }]*/
        
        function foo(callback) {
            if (callback) {
                return void callback();
            }
            return true;
        }
        
        function bar(condition) {
            if (condition) {
                return undefined;
            }
            return true;
        }

        Examples of correct code for this rule with the { "treatUndefinedAsUnspecified": true } option:

        /*eslint consistent-return: ["error", { "treatUndefinedAsUnspecified": true }]*/
        
        function foo(callback) {
            if (callback) {
                return void callback();
            }
            // no return statement
        }
        
        function bar(condition) {
            if (condition) {
                return undefined;
            }
            // no return statement
        }

        When Not To Use It

        If you want to allow functions to have different return behavior depending on code branching, then it is safe to disable this rule. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

              console.log();
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

                console.log(message);
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log('To create a production build, use ' + chalk.cyan(cli + ' run build') + '.');
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log(chalk.yellow('Compiled with warnings.'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Missing trailing comma.
        Open

            host: host
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow trailing commas (comma-dangle)

        Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

        var foo = {
            bar: "baz",
            qux: "quux",
        };

        Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

        Less clear:

        var foo = {
        -    bar: "baz",
        -    qux: "quux"
        +    bar: "baz"
         };

        More clear:

        var foo = {
             bar: "baz",
        -    qux: "quux",
         };

        Rule Details

        This rule enforces consistent use of trailing commas in object and array literals.

        Options

        This rule has a string option or an object option:

        {
            "comma-dangle": ["error", "never"],
            // or
            "comma-dangle": ["error", {
                "arrays": "never",
                "objects": "never",
                "imports": "never",
                "exports": "never",
                "functions": "ignore",
            }]
        }
        • "never" (default) disallows trailing commas
        • "always" requires trailing commas
        • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
        • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

        Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

        You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

        • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
        • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
        • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
        • exports is for export declarations of ES Modules. (e.g. export {a,};)
        • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
          functions is set to "ignore" by default for consistency with the string option.

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        Examples of correct code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        always-multiline

        Examples of incorrect code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        only-multiline

        Examples of incorrect code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];

        Examples of correct code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        functions

        Examples of incorrect code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        Examples of correct code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of incorrect code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of correct code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        When Not To Use It

        You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

              console.log('Note that the development build is not optimized.');
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log('Use ' + chalk.yellow('/* eslint-disable */') + ' to ignore all warnings in a file.');
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Missing trailing comma.
        Open

              ['text/html', '*/*']
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow trailing commas (comma-dangle)

        Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

        var foo = {
            bar: "baz",
            qux: "quux",
        };

        Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

        Less clear:

        var foo = {
        -    bar: "baz",
        -    qux: "quux"
        +    bar: "baz"
         };

        More clear:

        var foo = {
             bar: "baz",
        -    qux: "quux",
         };

        Rule Details

        This rule enforces consistent use of trailing commas in object and array literals.

        Options

        This rule has a string option or an object option:

        {
            "comma-dangle": ["error", "never"],
            // or
            "comma-dangle": ["error", {
                "arrays": "never",
                "objects": "never",
                "imports": "never",
                "exports": "never",
                "functions": "ignore",
            }]
        }
        • "never" (default) disallows trailing commas
        • "always" requires trailing commas
        • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
        • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

        Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

        You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

        • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
        • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
        • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
        • exports is for export declarations of ES Modules. (e.g. export {a,};)
        • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
          functions is set to "ignore" by default for consistency with the string option.

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        Examples of correct code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        always-multiline

        Examples of incorrect code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        only-multiline

        Examples of incorrect code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];

        Examples of correct code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        functions

        Examples of incorrect code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        Examples of correct code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of incorrect code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of correct code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        When Not To Use It

        You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

            console.log(chalk.cyan('Starting the development server...'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

              console.log(chalk.red('Failed to compile.'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Unexpected console statement.
        Open

            console.log(
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        Missing trailing comma.
        Open

              chalk.cyan(err.code) + ').'
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow trailing commas (comma-dangle)

        Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

        var foo = {
            bar: "baz",
            qux: "quux",
        };

        Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

        Less clear:

        var foo = {
        -    bar: "baz",
        -    qux: "quux"
        +    bar: "baz"
         };

        More clear:

        var foo = {
             bar: "baz",
        -    qux: "quux",
         };

        Rule Details

        This rule enforces consistent use of trailing commas in object and array literals.

        Options

        This rule has a string option or an object option:

        {
            "comma-dangle": ["error", "never"],
            // or
            "comma-dangle": ["error", {
                "arrays": "never",
                "objects": "never",
                "imports": "never",
                "exports": "never",
                "functions": "ignore",
            }]
        }
        • "never" (default) disallows trailing commas
        • "always" requires trailing commas
        • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
        • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

        Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

        You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

        • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
        • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
        • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
        • exports is for export declarations of ES Modules. (e.g. export {a,};)
        • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
          functions is set to "ignore" by default for consistency with the string option.

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        Examples of correct code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        always-multiline

        Examples of incorrect code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        only-multiline

        Examples of incorrect code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];

        Examples of correct code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        functions

        Examples of incorrect code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        Examples of correct code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of incorrect code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of correct code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        When Not To Use It

        You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

        Unexpected console statement.
        Open

              console.log(chalk.red('When specified, "proxy" in package.json must be a string.'));
        Severity: Minor
        Found in scripts/start.js by eslint

        disallow the use of console (no-console)

        In JavaScript that is designed to be executed in the browser, it's considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.

        console.log("Made it here.");
        console.error("That shouldn't have happened.");

        Rule Details

        This rule disallows calls to methods of the console object.

        Examples of incorrect code for this rule:

        /*eslint no-console: "error"*/
        
        console.log("Log a debug level message.");
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        Examples of correct code for this rule:

        /*eslint no-console: "error"*/
        
        // custom console
        Console.log("Hello world!");

        Options

        This rule has an object option for exceptions:

        • "allow" has an array of strings which are allowed methods of the console object

        Examples of additional correct code for this rule with a sample { "allow": ["warn", "error"] } option:

        /*eslint no-console: ["error", { allow: ["warn", "error"] }] */
        
        console.warn("Log a warn level message.");
        console.error("Log an error level message.");

        When Not To Use It

        If you're using Node.js, however, console is used to output information to the user and so is not strictly used for debugging purposes. If you are developing for Node.js then you most likely do not want this rule enabled.

        Related Rules

        'res' is defined but never used.
        Open

              onProxyReq: function(proxyReq, req, res) {
        Severity: Minor
        Found in scripts/start.js by eslint

        Disallow Unused Variables (no-unused-vars)

        Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

        Rule Details

        This rule is aimed at eliminating unused variables, functions, and parameters of functions.

        A variable is considered to be used if any of the following are true:

        • It represents a function that is called (doSomething())
        • It is read (var y = x)
        • It is passed into a function as an argument (doSomething(x))
        • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

        A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

        Examples of incorrect code for this rule:

        /*eslint no-unused-vars: "error"*/
        /*global some_unused_var*/
        
        // It checks variables you have defined as global
        some_unused_var = 42;
        
        var x;
        
        // Write-only variables are not considered as used.
        var y = 10;
        y = 5;
        
        // A read for a modification of itself is not considered as used.
        var z = 0;
        z = z + 1;
        
        // By default, unused arguments cause warnings.
        (function(foo) {
            return 5;
        })();
        
        // Unused recursive functions also cause warnings.
        function fact(n) {
            if (n < 2) return 1;
            return n * fact(n - 1);
        }
        
        // When a function definition destructures an array, unused entries from the array also cause warnings.
        function getY([x, y]) {
            return y;
        }

        Examples of correct code for this rule:

        /*eslint no-unused-vars: "error"*/
        
        var x = 10;
        alert(x);
        
        // foo is considered used here
        myFunc(function foo() {
            // ...
        }.bind(this));
        
        (function(foo) {
            return foo;
        })();
        
        var myFunc;
        myFunc = setTimeout(function() {
            // myFunc is considered used
            myFunc();
        }, 50);
        
        // Only the second argument from the descructured array is used.
        function getY([, y]) {
            return y;
        }

        exported

        In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

        Note that /* exported */ has no effect for any of the following:

        • when the environment is node or commonjs
        • when parserOptions.sourceType is module
        • when ecmaFeatures.globalReturn is true

        The line comment // exported variableName will not work as exported is not line-specific.

        Examples of correct code for /* exported variableName */ operation:

        /* exported global_var */
        
        var global_var = 42;

        Options

        This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

        By default this rule is enabled with all option for variables and after-used for arguments.

        {
            "rules": {
                "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
            }
        }

        vars

        The vars option has two settings:

        • all checks all variables for usage, including those in the global scope. This is the default setting.
        • local checks only that locally-declared variables are used but will allow global variables to be unused.

        vars: local

        Examples of correct code for the { "vars": "local" } option:

        /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
        /*global some_unused_var */
        
        some_unused_var = 42;

        varsIgnorePattern

        The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

        Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

        /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
        
        var firstVarIgnored = 1;
        var secondVar = 2;
        console.log(secondVar);

        args

        The args option has three settings:

        • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
        • all - all named arguments must be used.
        • none - do not check arguments.

        args: after-used

        Examples of incorrect code for the default { "args": "after-used" } option:

        /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
        
        // 1 error
        // "baz" is defined but never used
        (function(foo, bar, baz) {
            return bar;
        })();

        Examples of correct code for the default { "args": "after-used" } option:

        /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
        
        (function(foo, bar, baz) {
            return baz;
        })();

        args: all

        Examples of incorrect code for the { "args": "all" } option:

        /*eslint no-unused-vars: ["error", { "args": "all" }]*/
        
        // 2 errors
        // "foo" is defined but never used
        // "baz" is defined but never used
        (function(foo, bar, baz) {
            return bar;
        })();

        args: none

        Examples of correct code for the { "args": "none" } option:

        /*eslint no-unused-vars: ["error", { "args": "none" }]*/
        
        (function(foo, bar, baz) {
            return bar;
        })();

        ignoreRestSiblings

        The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

        Examples of correct code for the { "ignoreRestSiblings": true } option:

        /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
        // 'type' is ignored because it has a rest property sibling.
        var { type, ...coords } = data;

        argsIgnorePattern

        The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

        Examples of correct code for the { "argsIgnorePattern": "^_" } option:

        /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
        
        function foo(x, _y) {
            return x + 1;
        }
        foo();

        caughtErrors

        The caughtErrors option is used for catch block arguments validation.

        It has two settings:

        • none - do not check error objects. This is the default setting.
        • all - all named arguments must be used.

        caughtErrors: none

        Not specifying this rule is equivalent of assigning it to none.

        Examples of correct code for the { "caughtErrors": "none" } option:

        /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
        
        try {
            //...
        } catch (err) {
            console.error("errors");
        }

        caughtErrors: all

        Examples of incorrect code for the { "caughtErrors": "all" } option:

        /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
        
        // 1 error
        // "err" is defined but never used
        try {
            //...
        } catch (err) {
            console.error("errors");
        }

        caughtErrorsIgnorePattern

        The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

        Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

        /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
        
        try {
            //...
        } catch (ignoreErr) {
            console.error("errors");
        }

        When Not To Use It

        If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

        Missing trailing comma.
        Open

              ignored: /node_modules/
        Severity: Minor
        Found in scripts/start.js by eslint

        require or disallow trailing commas (comma-dangle)

        Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

        var foo = {
            bar: "baz",
            qux: "quux",
        };

        Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

        Less clear:

        var foo = {
        -    bar: "baz",
        -    qux: "quux"
        +    bar: "baz"
         };

        More clear:

        var foo = {
             bar: "baz",
        -    qux: "quux",
         };

        Rule Details

        This rule enforces consistent use of trailing commas in object and array literals.

        Options

        This rule has a string option or an object option:

        {
            "comma-dangle": ["error", "never"],
            // or
            "comma-dangle": ["error", {
                "arrays": "never",
                "objects": "never",
                "imports": "never",
                "exports": "never",
                "functions": "ignore",
            }]
        }
        • "never" (default) disallows trailing commas
        • "always" requires trailing commas
        • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
        • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

        Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

        You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

        • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
        • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
        • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
        • exports is for export declarations of ES Modules. (e.g. export {a,};)
        • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
          functions is set to "ignore" by default for consistency with the string option.

        never

        Examples of incorrect code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        Examples of correct code for this rule with the default "never" option:

        /*eslint comma-dangle: ["error", "never"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        always

        Examples of incorrect code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var arr = [1,2];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always" option:

        /*eslint comma-dangle: ["error", "always"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var arr = [1,2,];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        always-multiline

        Examples of incorrect code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        Examples of correct code for this rule with the "always-multiline" option:

        /*eslint comma-dangle: ["error", "always-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });

        only-multiline

        Examples of incorrect code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = { bar: "baz", qux: "quux", };
        
        var arr = [1,2,];
        
        var arr = [1,
            2,];

        Examples of correct code for this rule with the "only-multiline" option:

        /*eslint comma-dangle: ["error", "only-multiline"]*/
        
        var foo = {
            bar: "baz",
            qux: "quux",
        };
        
        var foo = {
            bar: "baz",
            qux: "quux"
        };
        
        var foo = {bar: "baz", qux: "quux"};
        var arr = [1,2];
        
        var arr = [1,
            2];
        
        var arr = [
            1,
            2,
        ];
        
        var arr = [
            1,
            2
        ];
        
        foo({
          bar: "baz",
          qux: "quux",
        });
        
        foo({
          bar: "baz",
          qux: "quux"
        });

        functions

        Examples of incorrect code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        Examples of correct code for this rule with the {"functions": "never"} option:

        /*eslint comma-dangle: ["error", {"functions": "never"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of incorrect code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b) {
        }
        
        foo(a, b);
        new foo(a, b);

        Examples of correct code for this rule with the {"functions": "always"} option:

        /*eslint comma-dangle: ["error", {"functions": "always"}]*/
        
        function foo(a, b,) {
        }
        
        foo(a, b,);
        new foo(a, b,);

        When Not To Use It

        You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

        Calls to require() should use string literals
        Open

          var proxy = require(paths.appPackageJson).proxy;
        Severity: Minor
        Found in scripts/start.js by eslint

        For more information visit Source: http://eslint.org/docs/rules/

        There are no issues that match your filters.

        Category
        Status