UNPKG

marlint

Version:

Javascript code linter for traveloka js styleguide

118 lines (74 loc) 3.41 kB
# Marlint > JavaScript strict code style with ES6+ES7, React, and Flowtype (inspired from [XO](https://github.com/sindresorhus/xo)) Enforce strict code style. Never discuss code style on a code review again No decision-making. No `.eslintrc`, `.jshintrc`, `.jscsrc` to manage. It just works! ## Basic feature - ES6+ES7 support - Flowtype compatible (will not throw error on flow annotation) - React (and JSX) support (with sane rules, like no implicit React dependency on JS file with JSX syntax) ## Code style - 2 Space indentation - Semicolons - Single-quotes - No unused variables - Space after keyword `if (condition) {}` - Always `===` instead of `==` _Any of these can be [overridden](#rules) if necessary._ Check out an [example](index.js) and the [ESLint rules](https://github.com/traveloka/eslint-config-marlint/blob/master/index.js). ## Install ``` $ npm install --global marlint ``` ## Usage ``` $ marlint --help Usage $ marlint [<file|glob> ...] Options --compact Compact output --stdin Validate code from stdin --env Environment preset [Can be set multiple times] --global Global variable [Can be set multiple times] --ignore Additional paths to ignore [Can be set multiple times] Examples $ marlint $ marlint index.js $ marlint *.js !foo.js $ marlint --env=node --env=mocha Tips Put options in package.json instead of using flags so other tools can read it. ``` ## Config You can configure some options in Marlint by putting it in `package.json`: ```js { "name": "your-project", "marlint": { "envs": ["node", "mocha"] } } ``` [Globals](http://eslint.org/docs/user-guide/configuring#specifying-globals) and [rules](http://eslint.org/docs/user-guide/configuring#configuring-rules) can be configured inline in files. ### envs Type: `array` Default: `['node']` Which [environments](http://eslint.org/docs/user-guide/configuring#specifying-environments) your code is designed to run in. Each environment brings with it a certain set of predefined global variables. ### globals Type: `array` Additional global variables your code accesses during execution. ### ignores Type: `array` Some [paths](https://github.com/sindresorhus/marlint/blob/4a0db396766118d7918577d759cacb05cd99a354/index.js#L14-L20) are ignored by default. Additional ignores can be added here. ### rules Type: `object` Override any of the [default rules](https://github.com/sindresorhus/eslint-config-marlint/blob/master/index.js). See the [ESLint docs](http://eslint.org/docs/rules/) for more info on each rule. Please take a moment to consider if you really need to use this option. ## FAQ #### Why not ESLint / Standard / XO? This project aims to simplify code convention across Traveloka javascripts code by just typing `marlint` and be done. No decision-making, no config. Standard is way too opinionated and the rules is not meant to be changed. We could use XO, but we have to add support for ES6+ES7, React and Flowtype everytime we add new JavaScript project and that means duplicate config file. This tool is created to solve that problem. ## Editors - [Atom Linter Marlint](https://github.com/traveloka/atom-linter-marlint) ## Related - [eslint-config-marlint](https://github.com/traveloka/eslint-config-marlint) - ESLint shareable config for Marlint ## License MIT © [Traveloka](http://traveloka.com)