0.4.13 • Public • Published


    Transpiles coffee files first with coffeescript, then runs eslint checks on them. Line / Column reporting is processed through sourcemap data, so they will be accurate for your coffee files.

    The plugin ignores some rules that are impossible to satisfy from coffeescript (see this file)

    It additionally runs rules from coffeelint2 by creating a fake rule in eslint which wraps and maps the coffeelint2 rules.

    Special thanks to Alexander Mextner for getting this started and providing the base code.


    You'll first need to install ESLint:

    $ npm i eslint --save-dev

    Next, install @fellow/eslint-plugin-coffee:

    $ npm install @fellow/eslint-plugin-coffee --save-dev

    Note: If you installed ESLint globally (using the -g flag) then you must also install @fellow/eslint-plugin-coffee globally.

    Easy Usage

    Edit your .eslintrc file. and add this plugin. The easiest configuration is to just extend the base config provided to get a good set of rules (see here). You can omit the eslint-plugin- prefix when configuring eslint.

    Note: If you prefer the use of tabs, make sure to extend @fellow/coffee/recommended-tabs instead.

        "extends": ["plugin:@fellow/coffee/recommended"],
        "plugins": [
          # ... 

    Manual Configuration

    For ESLint rules only, add @fellow/coffee to the plugins section of your .eslintrc configuration file. This will cover many things well if use a good set of base rules. As always, you can omit the eslint-plugin- prefix:

      "plugins": [
          # ... 

    For better compatibility with other plugins (e.g. eslint-plugins-imports), I also provide a "parser" which eslint can hook into. Plugins like the import plugin do not run through checks or otherwise require module, you must set this plugin to wrap your default parser:

      "parser": "@fellow/eslint-plugin-coffee",
        "parser": "babel-eslint"# original parser goes here (you must specify one to use this option). 
        "sourceType": "module"# any original parser config options you had. 
        "ecmaVersion": 6
      "plugins": [
        # ... 
      "rules": {
        "@fellow/coffee/coffeescript-error": ["error", {}],
        # ... 

    To see how to add your own coffeelint-style rules, switch your .eslintrc -> .eslintrc.js and add: require('@fellow/eslint-plugin-coffee').registerCoffeeLintRule('myRuleModule') at the top.

    Then include it in the rules section of your .eslintrc.js, passing any config options your rule might expect.

    To learn how to write rules for coffeelint, check their docs.

    Editor compatibility


    For linting to work in VS Code, install the eslint extension and add the following to your workspace settings:

    "settings": {
        "files.associations": {
            "*.cjsx": "coffeescript"
        "eslint.validate": [


    npm i @fellow/eslint-plugin-coffee

    DownloadsWeekly Downloads






    Unpacked Size

    49.4 kB

    Total Files


    Last publish


    • cpmsmith
    • macdja38
    • sciyoshi
    • ericls
    • amin451