standard
Advanced tools
Comparing version 10.0.0-beta.2 to 10.0.0
@@ -7,3 +7,3 @@ # Authors | ||
- Jonny Buchanan (jonathan.buchanan@gmail.com) | ||
- Dan Flettre (fletd01@yahoo.com) | ||
- Dan Flettre (flettre@gmail.com) | ||
- Brandon Horst (brandonhorst@gmail.com) | ||
@@ -91,3 +91,4 @@ - Yoshua Wuyts (yoshuawuyts@gmail.com) | ||
- Peter Dave Hello (hsu@peterdavehello.org) | ||
- Wayou Liu (liuwayong@gmail.com) | ||
#### Generated by bin/update-authors.sh. |
@@ -6,9 +6,40 @@ # Change Log | ||
## 10.0.0 (BETA) - 2017-04-01 | ||
## 10.0.0 - 2017-04-04 | ||
TODO: FINALIZE RELEASE NOTES | ||
**Standard is turning 10.0.0!** 🎉 | ||
As with every new major release, there are lots of new rules in 10.0.0 designed to | ||
help catch bugs and make programmer intent more explicit. | ||
`standard` is more popular than ever – **330,000 downloads per month!** It's even | ||
more popular – **670,000 downloads per month** – if you include the | ||
[shareable ESLint config](https://www.npmjs.com/package/eslint-config-standard) | ||
that we also publish. | ||
The most important change in 10.0.0 is that **using deprecated Node.js APIs is now | ||
considered an error**. It's finally time to update those dusty old APIs! | ||
Deprecated APIs are problematic because they may print warning messages in the | ||
console in recent versions of Node.js. This often confuses users and leads to | ||
unecessary support tickets for project maintainers. | ||
Some deprecated APIs are even insecure (or at least prone to incorrect usage) which | ||
can have serious security implications. For that reason, `standard` now prevents | ||
usage of `Buffer(num)` or `new Buffer(num)` since these functions return uninitialized | ||
program memory which could contain private user information, secret keys, etc. | ||
Instead of `Buffer(num)` use the new `Buffer.alloc(num)` or `Buffer.from(obj)` | ||
functions which make programmer intent clearer and work in all currently supported | ||
versions of Node.js, including Node.js 4.x. For more background, | ||
[see this Node.js issue](https://github.com/nodejs/node/issues/4660). | ||
We also improved some rules to support common patterns in codebases that use React, | ||
JSX, and Flow. | ||
When you upgrade, consider running `standard --fix` to automatically fix some of | ||
the issues caught by this new version. | ||
### New features | ||
- Update ESLint from 3.15.x to 3.18.x. | ||
- Update ESLint from 3.15.x to 3.19.x. | ||
- Node.js API: Add `standard.lintTextSync` method | ||
@@ -23,5 +54,5 @@ ### New rules | ||
- Enforce callbacks always called with Node.js-style error first ([standard/no-callback-literal](https://github.com/xjamundx/eslint-plugin-standard#rules-explanations)) [#623](https://github.com/feross/standard/issues/623) (3%) | ||
- Functions named `callback`, `cb`, or `next` must be called with `null`, `undefined`, or an `Error` object as the first argument | ||
- Prevents accidentally using a string instead of an `Error` object | ||
- Prevents confusing callbacks that do not follow the Node.js pattern | ||
- Functions named `callback` or `cb` must be invoked with `null`, `undefined`, or an `Error` as the first argument | ||
- Disallows using a string instead of an `Error` object | ||
- Disallows confusing callbacks that do not follow the standard Node.js pattern | ||
- Disallow any imports that come after non-import statements ([import/first](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/first.md)) [#806](https://github.com/feross/standard/issues/806) (1%) | ||
@@ -33,2 +64,3 @@ - Disallow unnecessary return await ([no-return-await](http://eslint.org/docs/rules/no-return-await)) [#695](https://github.com/feross/standard/issues/695) (0%) | ||
- Disallow Webpack loader syntax in imports ([import/no-webpack-loader-syntax](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-webpack-loader-syntax.md)) [#806](https://github.com/feross/standard/issues/806) (0%) | ||
- Disallow comparing against -0 ([no-compare-neg-zero](http://eslint.org/docs/rules/no-compare-neg-zero)) [#812](https://github.com/feross/standard/issues/812) (0%) | ||
@@ -35,0 +67,0 @@ ### Changed rules |
<h1 align="center"> | ||
<a href="http://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript Style Guide" width="200"></a> | ||
<a href="https://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript Style Guide" width="200"></a> | ||
<br> | ||
@@ -11,3 +11,3 @@ JavaScript Standard Style | ||
<a href="https://travis-ci.org/feross/standard"><img src="https://img.shields.io/travis/feross/standard/master.svg" alt="Travis"></a> | ||
<a href="http://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
<a href="https://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
<a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/dm/standard.svg" alt="npm downloads"></a> | ||
@@ -20,8 +20,6 @@ <a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/v/standard.svg" alt="npm version"></a> | ||
<p align="center"> | ||
<em> | ||
Translations: | ||
<a href="../README.md">English</a>, | ||
<a href="README-ptbr.md">Português</a>, | ||
<a href="README-zhtw.md">繁體中文</a> | ||
</em> | ||
Translations: | ||
<a href="../README.md">English</a>, | ||
<a href="README-ptbr.md">Português</a>, | ||
<a href="README-zhtw.md">繁體中文</a> | ||
</p> | ||
@@ -31,12 +29,13 @@ | ||
Sin decisiones que tomar. Sin archivos `.eslintrc`, `.jshintrc`, o `.jscsrc` | ||
a gestionar. Simplemente funciona. | ||
## Guía de estilos JavaScript, con linter y corrección automática de código | ||
Este modulo te ahorra tiempo a ti (y otros) dos maneras: | ||
Este modulo te ahorra tiempo a ti (y otros) tres maneras: | ||
- **Sin configuración.** La manera mas fácil de forzar estilos consistentes | ||
- **Sin configuración.** La manera mas fácil de usar estilos consistentes | ||
en tu proyecto. | ||
- **Captura errores de estilos antes que sean enviados a PR.** Te ahorras el tiempo de | ||
hacer revisiones de código eliminando inconsistencias entre el dueño del | ||
repositorio y los contribuidores | ||
- **Automaticamente formatea el código.** Ejecuta `standard --fix` y dile adios a las | ||
inconsistencias en tu código. | ||
- **De manera temprana captura problemas de estilos y errores de programador.** Te ahorras el tiempo | ||
de hacer revisiones de código eliminando inconsistencias entre el dueño del | ||
repositorio y los contribuidores. | ||
@@ -51,13 +50,13 @@ Instalar con: | ||
- **Usar 2 espacios** como sangría. | ||
- **Usar comillas simples en cadenas de texto** con la excepcion para evitar escapado de texto | ||
- **2 espacios** como sangría. | ||
- **Usar comillas simples en cadenas de texto** con la excepcion de escapado de texto | ||
- **No dejar variables sin usar** – esta captura *toneladas* de bugs! | ||
- **Sin punto y coma** – [Esta][1] [bien.][2] [En serio!][3] | ||
- **No debes empezar una línea con `(`, `[`, o `` ` ``** | ||
- **Nunca empezar una línea con `(`, `[`, o `` ` ``** | ||
- Este es ul **unico** problema al evitar punto y coma – *automaticamente verificado para ti!* | ||
- [More details][4] | ||
- [Más detalles][4] | ||
- **Espacio después de las palabras claves** `if (condition) { ... }` | ||
- **Espacio después del nombre de función** `function name (arg) { ... }` | ||
- Usar siempre `===` en vez de `==` – pero `obj == null` esta permitido para verificar `null || undefined`. | ||
- Gestionar siempre el parametro de función `err` de node.js | ||
- Gestionar siempre el parámetro de función `err` de node.js | ||
- Usar siempre el prefijo `window` en los globales del navegador – A excepción de `document` y `navigator` esto esta bien | ||
@@ -82,9 +81,11 @@ - Previene uso accidental de mal-llamados globales del navegador como `open`, `length`, | ||
- [Instalación](#instalación) | ||
- [Uso](#uso) | ||
- Inicio Rapido | ||
- [Instalación](#instalación) | ||
- [Uso](#uso) | ||
- [Lo que podrias hacer si eres inteligente](#lo-que-prodias-hacer-si-eres-inteligente) | ||
- [Medalla](#medalla) | ||
- [Plugins editores de textos](#plugins-editores-de-textos) | ||
- [FAQ](#faq) | ||
- FAQ | ||
- [¿Porque deberia usar JavaScript Standard Style?](#porque-deberia-usar-javascript-standard-style) | ||
- [¿Quien usa JavaScript Standard Style?](#quien-usa-javascript-standard-style) | ||
- [¿Hay plugins para editores de textos?](#hay-plugins-para-editores-de-textos) | ||
- [¿Hay alguna medalla para al readme?](#hay-alguna-medalla-para-al-readme) | ||
- [No estoy de acuerdo con la regla X, ¿lo puedes cambiar?](#no-estoy-de-acuerdo-con-la-regla-x-lo-puedo-cambiar) | ||
@@ -103,6 +104,4 @@ - [¡Pero esto no un estandar web real!](#pero-esto-no-un-estandar-web-real) | ||
- [¿Como hago la salida (output) todo colorido y *bonito*?](#como-hago-la-salida-output-todo-colorido-y-bonito) | ||
- [Quiero contribuir a `standard`. ¿Que paquetes debería conocer?](#quiero-contribuir-a-standard-que-paquetes-debería-conocer) | ||
- [Node.js API](#nodejs-api) | ||
- [`standard.lintText(text, [opts], callback)`](#standardlinttexttext-opts-callback) | ||
- [`standard.lintFiles(files, [opts], callback)`](#standardlintfilesfiles-opts-callback) | ||
- [Node.js API](#nodejs-api) | ||
- [¿Como puedo contribuir a `standard`?](#como-puedo-contribuir-a-standard) | ||
- [Licencia](#licencia) | ||
@@ -112,7 +111,3 @@ | ||
La manera más fácil de usar JavaScript Standard Style para chequear tu código | ||
es instalarlo globalmente como programa Node de línea de comandos. | ||
Para hacer esto, simplemente ejecute el siguiente comando en su terminal | ||
(la bandera `-g` instalará `standard` globalmente en su sistema, | ||
omita la bandera si solo quiere instalar `standard` en el directorio actual): | ||
La manera más fácil de usar JavaScript Standard Style es instalarlo globalmente como un programa de linea de comandos de Node. Ejecuta el siguiente comando en la terminal: | ||
@@ -123,3 +118,3 @@ ```bash | ||
O, puede ejecutar este comando para instalar `standard` localmente, para usar en su módulo: | ||
O, puedes instalar `standard` localmente, para usar en un solo proyecto: | ||
@@ -130,3 +125,3 @@ ```bash | ||
[Node.js](http://nodejs.org) y [npm](https://npmjs.com) son requeridos para ejecutar los comandos anteriores. | ||
*Nota: para ejecutar los comandos anteriores [Node.js](http://nodejs.org) y [npm](https://npmjs.com) deben estar instalados.* | ||
@@ -154,3 +149,3 @@ ## Uso | ||
### Lo que podrias hacer si eres inteligente | ||
## Lo que podrias hacer si eres inteligente | ||
@@ -171,3 +166,3 @@ 1. Agregar esto `package.json` | ||
2. Chequear estilos automaticamente cuando ejecutes `npm test` | ||
2. Los estilos son chequeados automaticamente cuando ejecutes `npm test` | ||
@@ -182,24 +177,54 @@ ``` | ||
## ¿Porque deberia usar JavaScript Standard Style? | ||
### Medalla | ||
La belleza de JavaScript Standard Style es qué es simple. | ||
Nadie quiere mantener configuración de estilos en múltiples archivos | ||
de cientos de líneas para cada módulo/proyecto en los que trabajan. | ||
¡Es suficiente de esta locura! | ||
¿Desea usar uno estos en uno de sus proyectos? Incluya una de estas medallas a su readme para darle a conocer a las personas que está usando Javascript Standard Style. | ||
Este modulo te ahorra tiempo a ti (y otros) en tres maneras: | ||
[![Standard - JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
- **Sin configuración.** La manera mas fácil de usar estilos consistentes | ||
en tu proyecto. | ||
- **Automaticamente formatea el código.** Ejecuta `standard --fix` y dile adios a las | ||
inconsistencias en tu código. | ||
- **De manera temprana captura problemas de estilos y errores de programador.** Te ahorras el tiempo | ||
de hacer revisiones de código eliminando inconsistencias entre el dueño del | ||
repositorio y los contribuidores. | ||
```markdown | ||
[![Standard - JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
``` | ||
Adoptar estilos `standard` significa clasificar la importancia de la claridad del código y las convenciones de la comunidad mucho más que estilo personal. Esto quizás no tenga sentido para el 100% de proyectos y culturas de desarrollo, aunque proyectos de código abierto pueden llegar a ser hostiles para los novatos. Estableciendo expectativas de contribución limpia y automatizada puede hacer el proyecto más saludable. | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) | ||
## ¿Quien usa JavaScript Standard Style? | ||
```markdown | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) | ||
``` | ||
Un monton de gente! | ||
### Plugins editores de textos | ||
[<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/npm.png>](https://www.npmjs.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/github.png>](https://github.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/opbeat.png>](https://opbeat.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/nearform.png>](http://www.nearform.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/brave.png>](https://www.brave.com) | | ||
|---|---|---|---|---| | ||
| [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/zeit.png>](https://zeit.co) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/zendesk.png>](https://www.zendesk.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/mongodb.jpg>](https://www.mongodb.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/typeform.jpg>](https://www.typeform.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/gov-uk.png>](https://gds.blog.gov.uk) | | ||
|---|---|---|---|---| | ||
[<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/express.png>](http://expressjs.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/webtorrent.png>](https://webtorrent.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/ipfs.png>](https://ipfs.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/dat.png>](https://datproject.org) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/bitcoinjs.png>](https://bitcoinjs.org) | | ||
|---|---|---|---|---| | ||
[<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/atom.png>](https://atom.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/electron.png>](http://electron.atom.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/voltra.png>](https://voltra.co) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/treasuredata.png>](https://www.treasuredata.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/clevertech.png>](https://clevertech.biz) | | ||
|---|---|---|---|---| | ||
[<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/studynotes.jpg>](https://www.apstudynotes.org) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/optiopay.png>](https://www.optiopay.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/jaguar-landrover.png>](https://www.jlrtechincubator.com/jlrti/) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/bustle.jpg>](https://www.bustle.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/zentrick.png>](https://www.zentrick.com) | | ||
|---|---|---|---|---| | ||
[<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/nodesource.png>](https://nodesource.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/greenkeeper.png>](https://greenkeeper.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/karma.png>](https://karma-runner.github.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/taser.png>](https://www.taser.com) | | ||
|---|---|---|---|---| | ||
Adicionalmente a compañias, muchos miembros de la comunidad usan `standard` en modulos que son | ||
[muy numerosos](https://raw.githubusercontent.com/feross/standard-packages/master/all.json) para listar aqui. | ||
También `standard` es el linter con mas estrellas en GitHub | ||
[Clean Code Linter](https://github.com/showcases/clean-code-linters) un caso. | ||
## ¿Hay plugins para editores de textos? | ||
Primero, instale `standard`. Luego, instale el plugin apropiado para su editor: | ||
#### [Sublime Text](https://www.sublimetext.com/) | ||
#### Sublime Text | ||
@@ -216,3 +241,3 @@ Usando **[Package Control][sublime-1]**, instale **[SublimeLinter][sublime-2]** y | ||
#### [Atom](https://atom.io) | ||
#### Atom | ||
@@ -228,4 +253,15 @@ Instale **[linter-js-standard][atom-1]**. | ||
#### [Vim](http://www.vim.org/) | ||
#### Visual Studio Code | ||
Instale **[vscode-standardjs][vscode-1]**. (Incluye soporte para formateo automatico.) | ||
Para snippets JS, instale: **[vscode-standardjs-snippets][vscode-2]**. | ||
Para snippets React, instale **[vscode-react-standard][vscode-3]**. | ||
[vscode-1]: https://marketplace.visualstudio.com/items/chenxsan.vscode-standardjs | ||
[vscode-2]: https://marketplace.visualstudio.com/items?itemName=capaj.vscode-standardjs-snippets | ||
[vscode-3]: https://marketplace.visualstudio.com/items/TimonVS.ReactSnippetsStandard | ||
#### Vim | ||
instale **[Syntastic][vim-1]** y agregue esta linea a su `.vimrc`: | ||
@@ -246,3 +282,3 @@ | ||
#### [Emacs](https://www.gnu.org/software/emacs/) | ||
#### Emacs | ||
@@ -255,3 +291,3 @@ Instale **[Flycheck][emacs-1]** y revise **[manual][emacs-2]** para aprender | ||
#### [Brackets](http://brackets.io/) | ||
#### Brackets | ||
@@ -262,13 +298,2 @@ Busque el registro de extension para **["Standard Code Style"][brackets-1]**. | ||
#### [Visual Studio Code](https://code.visualstudio.com/) | ||
Instale **[vscode-standardjs][vscode-1]**. (Incluye soporte para formateo automatico.) | ||
Para snippets JS, instale: **[vscode-standardjs-snippets][vscode-2]**. | ||
Para snippets React, instale **[vscode-react-standard][vscode-3]**. | ||
[vscode-1]: https://marketplace.visualstudio.com/items/chenxsan.vscode-standardjs | ||
[vscode-2]: https://marketplace.visualstudio.com/items?itemName=capaj.vscode-standardjs-snippets | ||
[vscode-3]: https://marketplace.visualstudio.com/items/TimonVS.ReactSnippetsStandard | ||
#### [WebStorm and other JetBrains products][webstorm-1] | ||
@@ -278,29 +303,25 @@ | ||
Si aun prefieres configurar `standard` manualmente [sigue esta guia](webstorm-2) | ||
Si aun prefieres configurar `standard` manualmente [sigue esta guia](webstorm-2). Esto aplica a todos los productos de JetBrains, incluyendo PhpStorm, IntelliJ, RubyMine y etc. | ||
Esto aplica a todos los productos de JetBrains, incluyendo PhpStorm, IntelliJ, RubyMine y etc. | ||
[webstorm-1]: https://www.jetbrains.com/webstorm/ | ||
[webstorm-2]: webstorm.md | ||
## FAQ | ||
## Hay alguna medalla para readme? | ||
### ¿Porque deberia usar JavaScript Standard Style? | ||
Si! Si estas usando `standard` en tu proyecto, puedes includir una de estas en tu readme para | ||
hacerle saber a las personas que en tu código estas usando estilos standard. | ||
La belleza de JavaScript Standard Style es qué es simple. | ||
Nadie quiere mantener configuración de estilos en múltiples archivos | ||
de cientos de líneas para cada módulo/proyecto en los que trabajan. | ||
¡Es suficiente de esta locura! | ||
[![Standard - JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
Este modulo te guarda a ti (y otros) tiempo en dos maneras: | ||
```markdown | ||
[![Standard - JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
``` | ||
- **Sin configuración.** La manera mas fácil de forzar estilos consistentes | ||
en tu proyecto. Simplemente usalo. | ||
- **Captura errores de estilos antes que sean enviados a PR.** Te guarda de | ||
revisiones de código eliminando delante y detrás entre el dueño del | ||
repositorio y los contribuidores | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://standardjs.com/) | ||
Adoptar estilos `standard` significa clasificar la importancia de la claridad del código y las convenciones de la comunidad mucho más que estilo personal. Esto quizás no tenga sentido para el 100% de proyectos y culturas de desarrollo, aunque proyectos de código abierto pueden llegar a ser hostiles para los novatos. Estableciendo expectativas de contribución limpia y automatizada puede hacer el proyecto más saludable | ||
```markdown | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://standardjs.com/) | ||
``` | ||
### No estoy de acuerdo con la regla X, ¿lo puedo cambiar? | ||
## No estoy de acuerdo con la regla X, ¿lo puedo cambiar? | ||
@@ -317,3 +338,3 @@ No. El punto de `standard` es de evitar [bikeshedding][bikeshedding] acerca del estilo. Existen un montón de debates online acerca de tabs vs espacios, etc. que nunca serán resueltos. Estos debates solo distraen de hacer el trabajo. Al final del dia tienes simplemente que “usar alguno”, y esa es toda la filosofía de `standard` -- es un montón de sensibles opiniones de “usar alguno”. Con la esperanza que los usuarios vean el valor en esto más que defender sus propias opiniones. | ||
### ¡Pero esto no un estandar web real! | ||
## ¡Pero esto no un estandar web real! | ||
@@ -328,3 +349,3 @@ ¡Por su puesto que no lo es! El estilo aqui no esta afiliado a ningún grupo oficial de estándar web, es por eso que este repositorio se llama `feross/standard` y no `ECMA/standard`. | ||
### ¿Hay algún formateador automatico? | ||
## ¿Hay algún formateador automatico? | ||
@@ -334,10 +355,10 @@ ¡Si! Puedes usar `standard --fix` para arreglar la mayoría de problemas automáticamente. | ||
`standard --fix` esta integrado en `standard` (desde v8.0.0) para máxima conveniencia. | ||
La mayoría de los problemas se arreglan, pero algunos errores, como olvidar darle uso a los `err` en los callbacks de node, deben ser arreglados manualmente. | ||
La mayoría de los problemas se arreglan, pero algunos errores (olvidar gestionar errores en callbacks) deben ser arreglados manualmente. | ||
Para no hacerte perder el tiempo, `standard` emite un mensaje ("Run `standard --fix` to | ||
Para no perder el tiempo, `standard` emite un mensaje ("Run `standard --fix` to | ||
automatically fix some problems.") cuando detecta errores que pueden ser arreglados automáticamente. | ||
### ¿Como hago para ignorar archivos? | ||
## ¿Como hago para ignorar archivos? | ||
Ciertas rutas (`node_modules/`, `coverage/`, `vendor/`, `*.min.js`, `bundle.js`, y archivos/directorios que empiezan con `.` cómo `.git` son ignorados automáticamente. | ||
Ciertas rutas (`node_modules/`, `coverage/`, `vendor/`, `*.min.js`, `bundle.js`, y archivos/directorios que empiezan con `.` cómo `.git`) son ignorados automáticamente. | ||
@@ -359,3 +380,3 @@ Las rutas del `.gitignore` del proyecto raíz son ignorados automáticamente. | ||
### ¿Como oculto cierta alerta? | ||
## ¿Como oculto cierta alerta? | ||
@@ -396,3 +417,3 @@ En raros casos, necesitarás romper una regla y ocultar la alerta generada por `standard`. | ||
### Yo uso una librería que contamina el espacio de nombres global. ¿Como puedo evitar los errores "variable is not defined"? | ||
## Yo uso una librería que contamina el espacio de nombres global. ¿Como puedo evitar los errores "variable is not defined"? | ||
@@ -426,8 +447,8 @@ Algunos paquetes (ej `mocha`) colocan sus funciones (ej: `describe`, `it`) en el objeto global (¡mala manera!). Como estas funciones no están definidas o requeridas (ej: `require`) en ningún lugar del código, `standard` te alertara que están usando una variable que no está definida (usualmente, esta regla es realmente útil para detectar errores de tipeo). Pero queremos inhabilitar estas variables globales. | ||
### ¿Puedo usar un parser JavaScript que soporte ES última-generación? | ||
## ¿Como Puedo usar características experimentales JavaScript (ES Next)? | ||
`standard` soporta la umtima version de ECMAscript, incluyendo todas las caracteristicas del lenguaje | ||
`standard` soporta las ultimas características de ECMAscript, ES8 (ES2017) incluyendo todas las características del lenguaje | ||
de las propuestas que estan en "Stage 4" del proceso de propuestas. | ||
Para soportar caracteristicas experimentales del lenguaje, `standard` soporta especificando un parser JS customizado. Antes que uses un parser customizado, considera siquiera la complejidad agregada vale la pena. | ||
Para soportar características experimentales del lenguaje, `standard` soporta especificando un parser JS customizado. Antes que uses un parser customizado, considera siquiera la complejidad agregada vale la pena. | ||
@@ -452,3 +473,3 @@ Para usar un parser customizado, instálelo desde npm (ejemplo: `npm install babel-eslint`) y ejecute esto: | ||
### ¿Puedo usar una variación de lenguaje JavaScript, como Flow? | ||
## ¿Puedo usar una variación de lenguaje JavaScript, como Flow? | ||
@@ -482,15 +503,4 @@ Antes de usar una variable del lenguaje JavaScript customizado, considere si la complejidad agregada | ||
### ¿Que acerca de Web Workers? | ||
## ¿Que acerca de Mocha, Jasmine, QUnit y etc? | ||
Agrega esto al inicio de tus archivos: | ||
```js | ||
/* eslint-env serviceworker */ | ||
``` | ||
Esto le hara saber a` standard` (como también humanos que leen tu código) que | ||
`self` es una variable global en el codigo web worker. | ||
### ¿Que acerca de Mocha, Jasmine, QUnit y etc? | ||
Para soportar mocha in tus archivos de prueba, agrega esto al inicio de los archivos: | ||
@@ -514,4 +524,15 @@ | ||
### ¿Puedo verificar codigo dentro de archivos Markdown o HTML? | ||
## ¿Que acerca de Web Workers? | ||
Agrega esto al inicio de tus archivos: | ||
```js | ||
/* eslint-env serviceworker */ | ||
``` | ||
Esto le hara saber a` standard` (como también humanos que leen tu código) que | ||
`self` es una variable global en el codigo web worker. | ||
## ¿Puedo verificar codigo dentro de archivos Markdown o HTML? | ||
Para verificar código dentro de archivos Markdown use [`standard-markdown`](https://www.npmjs.com/package/standard-markdown). | ||
@@ -546,3 +567,3 @@ | ||
### ¿Hay algún gancho git `pre-commit`? | ||
## ¿Hay algún gancho git `pre-commit`? | ||
@@ -559,3 +580,3 @@ Funny you should ask! | ||
### ¿Como hago la salida (output) todo colorido y *bonito*? | ||
## ¿Como hago la salida (output) todo colorido y *bonito*? | ||
@@ -634,3 +655,3 @@ La salida integrada es simple y directa, pero si te gustan las cosas brillantes, puedes instalar [snazzy](https://www.npmjs.com/package/snazzy): | ||
## Contribuciones | ||
## ¿Como puedo contribuir a `standard`? | ||
@@ -641,4 +662,2 @@ Contribuciones son bienvenidas! Chequea los [issues](https://github.com/feross/standard/issues) o [PRs](https://github.com/feross/standard/pulls), o has el tuyo propio si quieres algo que nos ves allí | ||
### Quiero contribuir a `standard`. ¿Que paquetes debería conocer? | ||
- **[standard](https://github.com/feross/standard)** - este repositorio | ||
@@ -651,3 +670,3 @@ - **[standard-engine](https://github.com/flet/standard-engine)** - motor arbitrario cli de relgas eslint | ||
- **[snazzy](https://github.com/feross/snazzy)** - salida colorida o *bonita* en el terminal para standard | ||
- **[standard-www](https://github.com/feross/standard-www)** - codigo de http://standardjs.com | ||
- **[standard-www](https://github.com/feross/standard-www)** - codigo de https://standardjs.com | ||
- **[semistandard](https://github.com/Flet/semistandard)** - standard, con punto y coma (sí es necesario) | ||
@@ -654,0 +673,0 @@ |
<h1 align="center"> | ||
<a href="http://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript Style Guide" width="200"></a> | ||
<a href="https://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript Style Guide" width="200"></a> | ||
<br> | ||
@@ -11,3 +11,3 @@ JavaScript Standard Style | ||
<a href="https://travis-ci.org/feross/standard"><img src="https://img.shields.io/travis/feross/standard/master.svg" alt="Travis"></a> | ||
<a href="http://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
<a href="https://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
<a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/dm/standard.svg" alt="npm downloads"></a> | ||
@@ -20,8 +20,6 @@ <a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/v/standard.svg" alt="npm version"></a> | ||
<p align="center"> | ||
<em> | ||
Translations: | ||
<a href="../README.md">English</a>, | ||
<a href="README-esla.md">Spanish</a>, | ||
<a href="README-zhtw.md">繁體中文</a> | ||
</em> | ||
Translations: | ||
<a href="../README.md">English</a>, | ||
<a href="README-esla.md">Spanish</a>, | ||
<a href="README-zhtw.md">繁體中文</a> | ||
</p> | ||
@@ -177,6 +175,6 @@ | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://standardjs.com/) | ||
```markdown | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://standardjs.com/) | ||
``` | ||
@@ -555,3 +553,3 @@ | ||
- **[snazzy](https://github.com/feross/snazzy)** - Output de terminal bonitinho | ||
- **[standard-www](https://github.com/feross/standard-www)** - código do http://standardjs.com | ||
- **[standard-www](https://github.com/feross/standard-www)** - código do https://standardjs.com | ||
- **[semistandard](https://github.com/Flet/semistandard)** - standard, com ponto-e-vírgula (se você precisar) | ||
@@ -558,0 +556,0 @@ |
<h1 align="center"> | ||
<a href="http://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript 樣式教學" width="200"></a> | ||
<a href="https://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript 樣式教學" width="200"></a> | ||
<br> | ||
@@ -11,3 +11,3 @@ JavaScript Standard Style | ||
<a href="https://travis-ci.org/feross/standard"><img src="https://img.shields.io/travis/feross/standard/master.svg" alt="Travis"></a> | ||
<a href="http://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
<a href="https://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
<a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/dm/standard.svg" alt="npm downloads"></a> | ||
@@ -20,8 +20,6 @@ <a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/v/standard.svg" alt="npm version"></a> | ||
<p align="center"> | ||
<em> | ||
翻譯: | ||
<a href="../README.md">English</a>、 | ||
<a href="README-ptbr.md">Português</a>、 | ||
<a href="README-esla.md">Spanish</a> | ||
</em> | ||
翻譯: | ||
<a href="../README.md">English</a>、 | ||
<a href="README-ptbr.md">Português</a>、 | ||
<a href="README-esla.md">Spanish</a> | ||
</p> | ||
@@ -279,6 +277,6 @@ | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](http://standardjs.com/) | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com/) | ||
```md | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](http://standardjs.com/) | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com/) | ||
``` | ||
@@ -602,3 +600,3 @@ | ||
- **[snazzy](https://github.com/feross/snazzy)** - standard 的終端機美麗輸出 | ||
- **[standard-www](https://github.com/feross/standard-www)** - http://standardjs.com 網站程式 | ||
- **[standard-www](https://github.com/feross/standard-www)** - https://standardjs.com 網站程式 | ||
- **[semistandard](https://github.com/Flet/semistandard)** - standard,含分號版本(如果你真的真的必須要加分號) | ||
@@ -605,0 +603,0 @@ |
# JavaScript Standard Style | ||
Translations: [English](../RULES.md), [Português](RULES-ptbr.md), [繁體中文](RULES-zhtw.md) | ||
Translations: [English](../RULES.md), [Português](RULES-ptbr.md), [繁體中文](RULES-zhtw.md), [简体中文](RULES-zhcn.md) | ||
@@ -133,3 +133,3 @@ [![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
* **Para delcaraciones if multi-linea** usar llaves. | ||
* **Para declaraciones if multi-linea** debe usar llaves. | ||
@@ -253,4 +253,1018 @@ eslint: [`curly`](http://eslint.org/docs/rules/curly) | ||
## Puntos y comas (semicolos) | ||
* **Agregar espacios dentro de bloques de una sola linea.** | ||
eslint: [`block-spacing`](http://eslint.org/docs/rules/block-spacing) | ||
```js | ||
function foo () {return true} // ✗ evitar | ||
function foo () { return true } // ✓ ok | ||
``` | ||
* **Usar camelcase al nombre variables y funciones.** | ||
eslint: [`camelcase`](http://eslint.org/docs/rules/camelcase) | ||
```js | ||
function my_function () { } // ✗ avoid | ||
function myFunction () { } // ✓ ok | ||
var my_var = 'hello' // ✗ avoid | ||
var myVar = 'hello' // ✓ ok | ||
``` | ||
* **Comas adicionales no esta permitido.** | ||
eslint: [`comma-dangle`](http://eslint.org/docs/rules/comma-dangle) | ||
```js | ||
var obj = { | ||
message: 'hello', // ✗ avoid | ||
} | ||
``` | ||
* **Comas deben colocarse al final de la linea actual.** | ||
eslint: [`comma-style`](http://eslint.org/docs/rules/comma-style) | ||
```js | ||
var obj = { | ||
foo: 'foo' | ||
,bar: 'bar' // ✗ avoid | ||
} | ||
var obj = { | ||
foo: 'foo', | ||
bar: 'bar' // ✓ ok | ||
} | ||
``` | ||
* **El Puto debe ir en la misma linea que la propiedad.** | ||
eslint: [`dot-location`](http://eslint.org/docs/rules/dot-location) | ||
```js | ||
console. | ||
log('hello') // ✗ avoid | ||
console | ||
.log('hello') // ✓ ok | ||
``` | ||
* **Archivos deben terminar con una nueva linea.** | ||
elint: [`eol-last`](http://eslint.org/docs/rules/eol-last) | ||
* **Sin espacios entre el identificador de la funcion y su invocación.** | ||
eslint: [`func-call-spacing`](http://eslint.org/docs/rules/func-call-spacing) | ||
```js | ||
console.log ('hello') // ✗ avoid | ||
console.log('hello') // ✓ ok | ||
``` | ||
* **Agregar espacio entre dos puntos (colon) y pares clave valor.** | ||
eslint: [`key-spacing`](http://eslint.org/docs/rules/key-spacing) | ||
```js | ||
var obj = { 'key' : 'value' } // ✗ avoid | ||
var obj = { 'key' :'value' } // ✗ avoid | ||
var obj = { 'key':'value' } // ✗ avoid | ||
var obj = { 'key': 'value' } // ✓ ok | ||
``` | ||
* **Nombres de Constructor deben empezar con letra Mayúscula.** | ||
eslint: [`new-cap`](http://eslint.org/docs/rules/new-cap) | ||
```js | ||
function animal () {} | ||
var dog = new animal() // ✗ avoid | ||
function Animal () {} | ||
var dog = new Animal() // ✓ ok | ||
``` | ||
* **Constructor sin argumentos debe ser invocado con paréntesis.** | ||
eslint: [`new-parens`](http://eslint.org/docs/rules/new-parens) | ||
```js | ||
function Animal () {} | ||
var dog = new Animal // ✗ avoid | ||
var dog = new Animal() // ✓ ok | ||
``` | ||
* **Objetos deben contener un getter cuando se ha definido un setter.** | ||
eslint: [`accessor-pairs`](http://eslint.org/docs/rules/accessor-pairs) | ||
```js | ||
var person = { | ||
set name (value) { // ✗ avoid | ||
this.name = value | ||
} | ||
} | ||
var person = { | ||
set name (value) { | ||
this.name = value | ||
}, | ||
get name () { // ✓ ok | ||
return this.name | ||
} | ||
} | ||
``` | ||
* **Constructores de clases derivadas deben llamar `super`.** | ||
eslint: [`constructor-super`](http://eslint.org/docs/rules/constructor-super) | ||
```js | ||
class Dog { | ||
constructor () { | ||
super() // ✗ avoid | ||
} | ||
} | ||
class Dog extends Mammal { | ||
constructor () { | ||
super() // ✓ ok | ||
} | ||
} | ||
``` | ||
* **Usar array literales en vez de array constructor.** | ||
eslint: [`no-array-constructor`](http://eslint.org/docs/rules/no-array-constructor) | ||
```js | ||
var nums = new Array(1, 2, 3) // ✗ avoid | ||
var nums = [1, 2, 3] // ✓ ok | ||
``` | ||
* **Evitar usar arguments.calle y arguments.caller.** | ||
eslint: [`no-caller`](http://eslint.org/docs/rules/no-caller) | ||
```js | ||
function foo (n) { | ||
if (n <= 0) return | ||
arguments.callee(n - 1) // ✗ avoid | ||
} | ||
function foo (n) { | ||
if (n <= 0) return | ||
foo(n - 1) | ||
} | ||
``` | ||
* **Evitar modificar variables que fueron declaradas como clase.** | ||
eslint: [`no-class-assign`](http://eslint.org/docs/rules/no-class-assign) | ||
```js | ||
class Dog {} | ||
Dog = 'Fido' // ✗ avoid | ||
``` | ||
* **Evitar modifidicar variables declaracas usando `const`.** | ||
eslint: [`no-const-assign`](http://eslint.org/docs/rules/no-const-assign) | ||
```js | ||
const score = 100 | ||
score = 125 // ✗ avoid | ||
``` | ||
* **Evitar usar expresiones constantes en condicionales (a excepcion de búcles).** | ||
eslint: [`no-constant-condition`](http://eslint.org/docs/rules/no-constant-condition) | ||
```js | ||
if (false) { // ✗ avoid | ||
// ... | ||
} | ||
if (x === 0) { // ✓ ok | ||
// ... | ||
} | ||
while (true) { // ✓ ok | ||
// ... | ||
} | ||
``` | ||
* **Evitar carácteres de control de expresiones regulares.** | ||
eslint: [`no-control-regex`](http://eslint.org/docs/rules/no-control-regex) | ||
```js | ||
var pattern = /\x1f/ // ✗ avoid | ||
var pattern = /\x20/ // ✓ ok | ||
``` | ||
* **Evitar sentencias `debugger`.** | ||
eslint: [`no-debugger`](http://eslint.org/docs/rules/no-debugger) | ||
```js | ||
function sum (a, b) { | ||
debugger // ✗ avoid | ||
return a + b | ||
} | ||
``` | ||
* **Evitar operador delete en variables.** | ||
eslint: [`no-delete-var`](http://eslint.org/docs/rules/no-delete-var) | ||
```js | ||
var name | ||
delete name // ✗ avoid | ||
``` | ||
* **Evitar argumentos duplicados en definicion de funciones.** | ||
eslint: [`no-dupe-args`](http://eslint.org/docs/rules/no-dupe-args) | ||
```js | ||
function sum (a, b, a) { // ✗ avoid | ||
// ... | ||
} | ||
function sum (a, b, c) { // ✓ ok | ||
// ... | ||
} | ||
``` | ||
* **Evitar duplicados en miembros de clase.** | ||
eslint: [`no-dupe-class-members`](http://eslint.org/docs/rules/no-dupe-class-members) | ||
```js | ||
class Dog { | ||
bark () {} | ||
bark () {} // ✗ avoid | ||
} | ||
``` | ||
* **Evitar duplicado de claves en objetos literales.** | ||
eslint: [`no-dupe-keys`](http://eslint.org/docs/rules/no-dupe-keys) | ||
```js | ||
var user = { | ||
name: 'Jane Doe', | ||
name: 'John Doe' // ✗ avoid | ||
} | ||
``` | ||
* **Evitar dublicados de etiqueta `case` en sentencias `switch`.** | ||
eslint: [`no-duplicate-case`](http://eslint.org/docs/rules/no-duplicate-case) | ||
```js | ||
switch (id) { | ||
case 1: | ||
// ... | ||
case 1: // ✗ avoid | ||
} | ||
``` | ||
* **Usar una unica sentencia `import` por modulo.** | ||
eslint: [`no-duplicate-imports`](http://eslint.org/docs/rules/no-duplicate-imports) | ||
```js | ||
import { myFunc1 } from 'module' | ||
import { myFunc2 } from 'module' // ✗ avoid | ||
import { myFunc1, myFunc2 } from 'module' // ✓ ok | ||
``` | ||
* **Evitar classes de carácteres vacia en expresiones regulares.** | ||
eslint: [`no-empty-character-class`](http://eslint.org/docs/rules/no-empty-character-class) | ||
```js | ||
const myRegex = /^abc[]/ // ✗ avoid | ||
const myRegex = /^abc[a-z]/ // ✓ ok | ||
``` | ||
* **Evitar pratones de destructuración vacios.** | ||
eslint: [`no-empty-pattern`](http://eslint.org/docs/rules/no-empty-pattern) | ||
```js | ||
const { a: {} } = foo // ✗ avoid | ||
const { a: { b } } = foo // ✓ ok | ||
``` | ||
* **Evitar uso de `eval()`.** | ||
eslint: [`no-eval`](http://eslint.org/docs/rules/no-eval) | ||
```js | ||
eval( "var result = user." + propName ) // ✗ avoid | ||
var result = user[propName] // ✓ ok | ||
``` | ||
* **Evitar reasignar excepciones en clausas `catch`.** | ||
eslint: [`no-ex-assign`](http://eslint.org/docs/rules/no-ex-assign) | ||
```js | ||
try { | ||
// ... | ||
} catch (e) { | ||
e = 'new value' // ✗ avoid | ||
} | ||
try { | ||
// ... | ||
} catch (e) { | ||
const newVal = 'new value' // ✓ ok | ||
} | ||
``` | ||
* **Evitar extender objetos nativos** | ||
eslint: [`no-extend-native`](http://eslint.org/docs/rules/no-extend-native) | ||
```js | ||
Object.prototype.age = 21 // ✗ avoid | ||
``` | ||
* **Evitar uso innecesario de bind en funciones.** | ||
eslint: [`no-extra-bind`](http://eslint.org/docs/rules/no-extra-bind) | ||
```js | ||
const name = function () { | ||
getName() | ||
}.bind(user) // ✗ avoid | ||
const name = function () { | ||
this.getName() | ||
}.bind(user) // ✓ ok | ||
``` | ||
* **Evitar hacer cast a booleanos.** | ||
eslint: [`no-extra-boolean-cast`](http://eslint.org/docs/rules/no-extra-boolean-cast) | ||
```js | ||
const result = true | ||
if (!!result) { // ✗ avoid | ||
// ... | ||
} | ||
const result = true | ||
if (result) { // ✓ ok | ||
// ... | ||
} | ||
``` | ||
* **Evitar paréntesis inncesario alrededor de expresión de funciones.** | ||
eslint: [`no-extra-parens`](http://eslint.org/docs/rules/no-extra-parens) | ||
```js | ||
const myFunc = (function () { }) // ✗ avoid | ||
const myFunc = function () { } // ✓ ok | ||
``` | ||
* **Usar `break` para evitar pasar de largo `fallthrough` en casos `switch`.** | ||
eslint: [`no-fallthrough`](http://eslint.org/docs/rules/no-fallthrough) | ||
```js | ||
switch (filter) { | ||
case 1: | ||
doSomething() // ✗ avoid | ||
case 2: | ||
doSomethingElse() | ||
} | ||
switch (filter) { | ||
case 1: | ||
doSomething() | ||
break // ✓ ok | ||
case 2: | ||
doSomethingElse() | ||
} | ||
switch (filter) { | ||
case 1: | ||
doSomething() | ||
// fallthrough // ✓ ok | ||
case 2: | ||
doSomethingElse() | ||
} | ||
``` | ||
* **Evitar decimales flotantes.** | ||
eslint: [`no-floating-decimal`](http://eslint.org/docs/rules/no-floating-decimal) | ||
```js | ||
const discount = .5 // ✗ avoid | ||
const discount = 0.5 // ✓ ok | ||
``` | ||
* **Evitar reasignación de declaraciones de funciones.** | ||
eslint: [`no-func-assign`](http://eslint.org/docs/rules/no-func-assign) | ||
```js | ||
function myFunc () { } | ||
myFunc = myOtherFunc // ✗ avoid | ||
``` | ||
* **Evitar reasignación de variables globales de solo-lectura.** | ||
eslint: [`no-global-assign`](http://eslint.org/docs/rules/no-global-assign) | ||
```js | ||
window = {} // ✗ avoid | ||
``` | ||
* **Evitar usar eval() implícito.** | ||
eslint: [`no-implied-eval`](http://eslint.org/docs/rules/no-implied-eval) | ||
```js | ||
setTimeout("alert('Hello world')") // ✗ avoid | ||
setTimeout(function () { alert('Hello world') }) // ✓ ok | ||
``` | ||
* **Evitar declaracion de funciones en bloques anidados.** | ||
eslint: [`no-inner-declarations`](http://eslint.org/docs/rules/no-inner-declarations) | ||
```js | ||
if (authenticated) { | ||
function setAuthUser () {} // ✗ avoid | ||
} | ||
``` | ||
* **Evitar cadenas de texto expresiones regulares invalidas en costructores `RegExp`.** | ||
eslint: [`no-invalid-regexp`](http://eslint.org/docs/rules/no-invalid-regexp) | ||
```js | ||
RegExp('[a-z') // ✗ avoid | ||
RegExp('[a-z]') // ✓ ok | ||
``` | ||
* **Evitar espacios en blanco irregulares.** | ||
eslint: [`no-irregular-whitespace`](http://eslint.org/docs/rules/no-irregular-whitespace) | ||
```js | ||
function myFunc () /*<NBSP>*/{} // ✗ avoid | ||
``` | ||
* **Evitar uso de `__iterator__`.** | ||
eslint: [`no-iterator`](http://eslint.org/docs/rules/no-iterator) | ||
```js | ||
Foo.prototype.__iterator__ = function () {} // ✗ avoid | ||
``` | ||
* **Evitar etiquetas que comparten el nombre de una variable en scope.** | ||
eslint: [`no-label-var`](http://eslint.org/docs/rules/no-label-var) | ||
```js | ||
var score = 100 | ||
function game () { | ||
score: 50 // ✗ avoid | ||
} | ||
``` | ||
* **Evitar sentencias etiquetadas.** | ||
eslint: [`no-labels`](http://eslint.org/docs/rules/no-labels) | ||
```js | ||
label: | ||
while (true) { | ||
break label // ✗ avoid | ||
} | ||
``` | ||
* **Evitar bloques anidados innecesarios** | ||
eslint: [`no-lone-blocks`](http://eslint.org/docs/rules/no-lone-blocks) | ||
```js | ||
function myFunc () { | ||
{ // ✗ avoid | ||
myOtherFunc() | ||
} | ||
} | ||
function myFunc () { | ||
myOtherFunc() // ✓ ok | ||
} | ||
``` | ||
* **Evitar mezclar espacios y tabulaciones para sangría** | ||
eslint: [`no-mixed-spaces-and-tabs`](http://eslint.org/docs/rules/no-mixed-spaces-and-tabs) | ||
* **Evitar uso de espacios en blanco multiples a excepcion de sangría** | ||
eslint: [`no-multi-spaces`](http://eslint.org/docs/rules/no-multi-spaces) | ||
```js | ||
const id = 1234 // ✗ avoid | ||
const id = 1234 // ✓ ok | ||
``` | ||
* **Evitar cadenas de texto multi-linea** | ||
eslint: [`no-multi-str`](http://eslint.org/docs/rules/no-multi-str) | ||
```js | ||
const message = 'Hello \ | ||
world' // ✗ avoid | ||
``` | ||
* **Evitar usar `new` sin asignar a el objecto a una variable** | ||
eslint: [`no-new`](http://eslint.org/docs/rules/no-new) | ||
```js | ||
new Character() // ✗ avoid | ||
const character = new Character() // ✓ ok | ||
``` | ||
* **Evitar uso de constructor `Function`.** | ||
eslint: [`no-new-func`](http://eslint.org/docs/rules/no-new-func) | ||
```js | ||
var sum = new Function('a', 'b', 'return a + b') // ✗ avoid | ||
``` | ||
* **Evitar uso de constructor `Object`** | ||
eslint: [`no-new-object`](http://eslint.org/docs/rules/no-new-object) | ||
```js | ||
let config = new Object() // ✗ avoid | ||
``` | ||
* **Evitar uso de `new require`.** | ||
eslint: [`no-new-require`](http://eslint.org/docs/rules/no-new-require) | ||
```js | ||
const myModule = new require('my-module') // ✗ avoid | ||
``` | ||
* **Evitar uso de constructor `Symbol`.** | ||
eslint: [`no-new-symbol`](http://eslint.org/docs/rules/no-new-symbol) | ||
```js | ||
const foo = new Symbol('foo') // ✗ avoid | ||
``` | ||
* **Evitar envolturas de instancias primitivas.** | ||
eslint: [`no-new-wrappers`](http://eslint.org/docs/rules/no-new-wrappers) | ||
```js | ||
const message = new String('hello') // ✗ avoid | ||
``` | ||
* **Evitar llamar propiedades de objetos globles como funciones.** | ||
eslint: [`no-obj-calls`](http://eslint.org/docs/rules/no-obj-calls) | ||
```js | ||
const math = Math() // ✗ avoid | ||
``` | ||
* **Evitar uso de octal literal.** | ||
eslint: [`no-octal`](http://eslint.org/docs/rules/no-octal) | ||
```js | ||
const num = 042 // ✗ avoid | ||
const num = '042' // ✓ ok | ||
``` | ||
* **Evitar escapado de secuencia octal en cadena de texto literal.** | ||
eslint: [`no-octal-escape`](http://eslint.org/docs/rules/no-octal-escape) | ||
```js | ||
const copyright = 'Copyright \251' // ✗ avoid | ||
``` | ||
* **Evitar concatenacion de cadena de texto para `__dirname` y `__filename`.** | ||
eslint: [`no-path-concat`](http://eslint.org/docs/rules/no-path-concat) | ||
```js | ||
const pathToFile = __dirname + '/app.js' // ✗ avoid | ||
const pathToFile = path.join(__dirname, 'app.js') // ✓ ok | ||
``` | ||
* **Evitar uso de `__proto__`.** Use `getPrototypeOf` en su lugar. | ||
eslint: [`no-proto`](http://eslint.org/docs/rules/no-proto) | ||
```js | ||
const foo = obj.__proto__ // ✗ avoid | ||
const foo = Object.getPrototypeOf(obj) // ✓ ok | ||
``` | ||
* **Evitar re-reclaración de variables.** | ||
eslint: [`no-redeclare`](http://eslint.org/docs/rules/no-redeclare) | ||
```js | ||
let name = 'John' | ||
let name = 'Jane' // ✗ avoid | ||
let name = 'John' | ||
name = 'Jane' // ✓ ok | ||
``` | ||
* **Evitar multiples espacios en expresiones regulares.** | ||
eslint: [`no-regex-spaces`](http://eslint.org/docs/rules/no-regex-spaces) | ||
```js | ||
const regexp = /test value/ // ✗ avoid | ||
const regexp = /test {3}value/ // ✓ ok | ||
const regexp = /test value/ // ✓ ok | ||
``` | ||
* **Asignación de variables en el retorno de funciones debe estar rodeado de paréntesis.** | ||
eslint: [`no-return-assign`](http://eslint.org/docs/rules/no-return-assign) | ||
```js | ||
function sum (a, b) { | ||
return result = a + b // ✗ avoid | ||
} | ||
function sum (a, b) { | ||
return (result = a + b) // ✓ ok | ||
} | ||
``` | ||
* **Evitar asignar una variable a si misma.** | ||
eslint: [`no-self-assign`](http://eslint.org/docs/rules/no-self-assign) | ||
```js | ||
name = name // ✗ avoid | ||
``` | ||
* **Evitar comparar una variable consigo mismo.** | ||
esint: [`no-self-compare`](http://eslint.org/docs/rules/no-self-compare) | ||
```js | ||
if (score === score) {} // ✗ avoid | ||
``` | ||
* **Evitar uso de secuencia separado po comma.** | ||
eslint: [`no-sequences`](http://eslint.org/docs/rules/no-sequences) | ||
```js | ||
if (doSomething(), !!test) {} // ✗ avoid | ||
``` | ||
* **Nombres restringidos no deben ser cambiados (shadowed).** | ||
eslint: [`no-shadow-restricted-names`](http://eslint.org/docs/rules/no-shadow-restricted-names) | ||
```js | ||
let undefined = 'value' // ✗ avoid | ||
``` | ||
* **Array dispersos no estan permitidos.** | ||
eslint: [`no-sparse-arrays`](http://eslint.org/docs/rules/no-sparse-arrays) | ||
```js | ||
let fruits = ['apple',, 'orange'] // ✗ avoid | ||
``` | ||
* **No se deben usar Tabulaciones.** | ||
eslint: [`no-tabs`](http://eslint.org/docs/rule | ||
* **Cadenas de textos regulares no deben contener placeholders de plantillas literales.** | ||
eslint: [`no-template-curly-in-string`](http://eslint.org/docs/rules/no-template-curly-in-string) | ||
```js | ||
const message = 'Hello ${name}' // ✗ avoid | ||
const message = `Hello ${name}` // ✓ ok | ||
``` | ||
* **`super()` debe ser llamado inmediatamente antes de usar `this`.** | ||
eslint: [`no-this-before-super`](http://eslint.org/docs/rules/no-this-before-super) | ||
```js | ||
class Dog extends Animal { | ||
constructor () { | ||
this.legs = 4 // ✗ avoid | ||
super() | ||
} | ||
} | ||
``` | ||
* **Solo se puede lanzar (`throw`) un objecto `Error`.** | ||
eslint: [`no-throw-literal`](http://eslint.org/docs/rules/no-throw-literal) | ||
```js | ||
throw 'error' // ✗ avoid | ||
throw new Error('error') // ✓ ok | ||
``` | ||
* **Espacios en blanco despues del final linea no estan permitidos .** | ||
eslint: [`no-trailing-spaces`](http://eslint.org/docs/rules/no-trailing-spaces) | ||
* **Inicializar una variable con `undefined` no esta permitido.** | ||
eslint: [`no-undef-init`](http://eslint.org/docs/rules/no-undef-init) | ||
```js | ||
let name = undefined // ✗ avoid | ||
let name | ||
name = 'value' // ✓ ok | ||
``` | ||
* **Búcles no modificados no estan permitidos.** | ||
eslint: [`no-unmodified-loop-condition`](http://eslint.org/docs/rules/no-unmodified-loop-condition) | ||
```js | ||
for (let i = 0; i < items.length; j++) {...} // ✗ avoid | ||
for (let i = 0; i < items.length; i++) {...} // ✓ ok | ||
``` | ||
* **Evitar usar operador ternario cuando existe una alternative mas simple.** | ||
eslint: [`no-unneeded-ternary`](http://eslint.org/docs/rules/no-unneeded-ternary) | ||
```js | ||
let score = val ? val : 0 // ✗ avoid | ||
let score = val || 0 // ✓ ok | ||
``` | ||
* **Evitar dejar código inalcanzable despues de sentencias `return`, `throw`, `continue`, y `break` .** | ||
eslint: [`no-unreachable`](http://eslint.org/docs/rules/no-unreachable) | ||
```js | ||
function doSomething () { | ||
return true | ||
console.log('never called') // ✗ avoid | ||
} | ||
``` | ||
* **Evitar sentencias de control de flujo en bloques `finally`.** | ||
eslint: [`no-unsafe-finally`](http://eslint.org/docs/rules/no-unsafe-finally) | ||
```js | ||
try { | ||
// ... | ||
} catch (e) { | ||
// ... | ||
} finally { | ||
return 42 // ✗ avoid | ||
} | ||
``` | ||
* **El operando izquierdo en operaciones relacionales no debe ser negado.** | ||
eslint: [`no-unsafe-negation`](http://eslint.org/docs/rules/no-unsafe-negation) | ||
```js | ||
if (!key in obj) {} // ✗ avoid | ||
``` | ||
* **Evitar uso inncesario de `.call()` y `.apply()`.** | ||
eslint: [`no-useless-call`](http://eslint.org/docs/rules/no-useless-call) | ||
```js | ||
sum.call(null, 1, 2, 3) // ✗ avoid | ||
``` | ||
* **Evitar usar constructores innecesarios.** | ||
eslint: [`no-useless-computed-key`](http://eslint.org/docs/rules/no-useless-computed-key) | ||
```js | ||
const user = { ['name']: 'John Doe' } // ✗ avoid | ||
const user = { name: 'John Doe' } // ✓ ok | ||
``` | ||
* **Evitar uso inncesario de escapado de text.** | ||
eslint: [`no-useless-escape`](http://eslint.org/docs/rules/no-useless-escape) | ||
```js | ||
let message = 'Hell\o' // ✗ avoid | ||
``` | ||
* **Renombrar import, export o destructuración con el mismo nombre no esta permitido** | ||
eslint: [`no-useless-rename`](http://eslint.org/docs/rules/no-useless-rename) | ||
```js | ||
import { config as config } from './config' // ✗ avoid | ||
import { config } from './config' // ✓ ok | ||
``` | ||
* **Evitar espacios en blanco antes de una propiedad.** | ||
eslint: [`no-whitespace-before-property`](http://eslint.org/docs/rules/no-whitespace-before-property) | ||
```js | ||
user .name // ✗ avoid | ||
user.name // ✓ ok | ||
``` | ||
* **Evitar uso de sentencia `with`.** | ||
eslint: [`no-with`](http://eslint.org/docs/rules/no-with) | ||
```js | ||
with (val) {...} // ✗ avoid | ||
``` | ||
* **Mantener consistencia de nuevas lineas entre las propiedades de un objecto .** | ||
eslint: [`object-property-newline`](http://eslint.org/docs/rules/object-property-newline) | ||
```js | ||
const user = { | ||
name: 'Jane Doe', age: 30, | ||
username: 'jdoe86' // ✗ avoid | ||
} | ||
const user = { name: 'Jane Doe', age: 30, username: 'jdoe86' } // ✓ ok | ||
const user = { | ||
name: 'Jane Doe', | ||
age: 30, | ||
username: 'jdoe86' | ||
} // ✓ ok | ||
``` | ||
* **Evitar espacios de relleno entre bloques.** | ||
eslint: [`padded-blocks`](http://eslint.org/docs/rules/padded-blocks) | ||
```js | ||
if (user) { | ||
// ✗ avoid | ||
const name = getName() | ||
} | ||
if (user) { | ||
const name = getName() // ✓ ok | ||
} | ||
``` | ||
* **Evitar espacios en blanco entre el operador de propagacion y la expresion** | ||
eslint: [`rest-spread-spacing`](http://eslint.org/docs/rules/rest-spread-spacing) | ||
```js | ||
fn(... args) // ✗ avoid | ||
fn(...args) // ✓ ok | ||
``` | ||
* **Punto y coma (semicolon) debe tener un espacio en blanco despues y no antes.** | ||
eslint: [`semi-spacing`](http://eslint.org/docs/rules/semi-spacing) | ||
```js | ||
for (let i = 0 ;i < items.length ;i++) {...} // ✗ avoid | ||
for (let i = 0; i < items.length; i++) {...} // ✓ ok | ||
``` | ||
* **Mantener espacio despues de los bloques.** | ||
eslint: [`space-before-blocks`](http://eslint.org/docs/rules/space-before-blocks) | ||
```js | ||
if (admin){...} // ✗ avoid | ||
if (admin) {...} // ✓ ok | ||
``` | ||
* **Evitar espacios en blanco entre paréntesis.** | ||
eslint: [`space-in-parens`](http://eslint.org/docs/rules/space-in-parens) | ||
```js | ||
getName( name ) // ✗ avoid | ||
getName(name) // ✓ ok | ||
``` | ||
* **Operador unario debe tener espacio en blanco despues.** | ||
eslint: [`space-unary-ops`](http://eslint.org/docs/rules/space-unary-ops) | ||
```js | ||
typeof!admin // ✗ avoid | ||
typeof !admin // ✓ ok | ||
``` | ||
* **Usar espacios dentro de comentarios.** | ||
eslint: [`spaced-comment`](http://eslint.org/docs/rules/spaced-comment) | ||
```js | ||
//comment // ✗ avoid | ||
// comment // ✓ ok | ||
/*comment*/ // ✗ avoid | ||
/* comment */ // ✓ ok | ||
``` | ||
* **Evitar espacios en blanco dentro de placeholders de plantillas literales.** | ||
eslint: [`template-curly-spacing`](http://eslint.org/docs/rules/template-curly-spacing) | ||
```js | ||
const message = `Hello, ${ name }` // ✗ avoid | ||
const message = `Hello, ${name}` // ✓ ok | ||
``` | ||
* **Usar `isNaN()` cuando se desea chequear `NaN`.** | ||
eslint: [`use-isnan`](http://eslint.org/docs/rules/use-isnan) | ||
```js | ||
if (price === NaN) { } // ✗ avoid | ||
if (isNaN(price)) { } // ✓ ok | ||
``` | ||
* **`typeof` debe ser comparado con una cadena de texto valida.** | ||
eslint: [`valid-typeof`](http://eslint.org/docs/rules/valid-typeof) | ||
```js | ||
typeof name === 'undefimed' // ✗ avoid | ||
typeof name === 'undefined' // ✓ ok | ||
``` | ||
* **Expressiones Funciones inmediatamente invocadas (IIFEs) deben ser envueltas en paréntesis.** | ||
eslint: [`wrap-iife`](http://eslint.org/docs/rules/wrap-iife) | ||
```js | ||
const getName = function () { }() // ✗ avoid | ||
const getName = (function () { }()) // ✓ ok | ||
const getName = (function () { })() // ✓ ok | ||
``` | ||
* **El `*` en expresiones `yield*` deben tener un espacio en blanco antes y despues.** | ||
eslint: [`yield-star-spacing`](http://eslint.org/docs/rules/yield-star-spacing) | ||
```js | ||
yield* increment() // ✗ avoid | ||
yield * increment() // ✓ ok | ||
``` | ||
* **Evitar condiciones Yoda.** | ||
eslint: [`yoda`](http://eslint.org/docs/rules/yoda) | ||
```js | ||
if (42 === age) { } // ✗ avoid | ||
if (age === 42) { } // ✓ ok | ||
``` | ||
## Puntos y comas (semicolons) | ||
* Sin puntos y comas. (see: [1](http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding), [2](http://inimino.org/%7Einimino/blog/javascript_semicolons), [3](https://www.youtube.com/watch?v=gsfbh17Ax9I)) | ||
@@ -257,0 +1271,0 @@ |
# JavaScript Standard Style | ||
Translations: [English](../RULES.md), [Spanish](RULES-esla.md), [繁體中文](RULES-zhtw.md) | ||
Translations: [English](../RULES.md), [Spanish](RULES-esla.md), [繁體中文](RULES-zhtw.md), [简体中文](RULES-zhcn.md) | ||
@@ -5,0 +5,0 @@ [![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) |
# JavaScript Standard Style | ||
翻譯: [English](../RULES.md)、[Português](RULES-ptbr.md)、[Spanish](RULES-esla.md) | ||
翻譯: [English](../RULES.md)、[Português](RULES-ptbr.md)、[Spanish](RULES-esla.md)、[简体中文](RULES-zhcn.md) | ||
@@ -5,0 +5,0 @@ [![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) |
{ | ||
"name": "standard", | ||
"description": "JavaScript Standard Style", | ||
"version": "10.0.0-beta.2", | ||
"version": "10.0.0", | ||
"author": { | ||
@@ -15,11 +15,11 @@ "email": "feross@feross.org", | ||
"dependencies": { | ||
"eslint": "~3.18.0", | ||
"eslint-config-standard": "8.0.0-beta.2", | ||
"eslint": "~3.19.0", | ||
"eslint-config-standard": "10.0.0", | ||
"eslint-config-standard-jsx": "3.3.0", | ||
"eslint-plugin-import": "~2.2.0", | ||
"eslint-plugin-node": "~4.1.0", | ||
"eslint-plugin-node": "~4.2.2", | ||
"eslint-plugin-promise": "~3.5.0", | ||
"eslint-plugin-react": "~6.10.0", | ||
"eslint-plugin-standard": "~2.1.1", | ||
"standard-engine": "~5.4.0" | ||
"eslint-plugin-standard": "~2.2.0", | ||
"standard-engine": "~7.0.0" | ||
}, | ||
@@ -29,2 +29,3 @@ "devDependencies": { | ||
"cross-spawn": "^5.0.1", | ||
"eslint-index": "^1.3.0", | ||
"minimist": "^1.2.0", | ||
@@ -39,3 +40,3 @@ "mkdirp": "^0.5.1", | ||
}, | ||
"homepage": "http://standardjs.com", | ||
"homepage": "https://standardjs.com", | ||
"keywords": [ | ||
@@ -73,2 +74,5 @@ "JavaScript Standard Style", | ||
"scripts": { | ||
"show-rules": "eslint-index eslintrc.json", | ||
"show-rules-disabled": "eslint-index eslintrc.json --status omitted off", | ||
"show-summary": "eslint-index eslintrc.json --format table", | ||
"test": "./bin/cmd.js --verbose && tape test/*.js", | ||
@@ -75,0 +79,0 @@ "test-disabled": "npm test -- --disabled", |
<h1 align="center"> | ||
<a href="http://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript Style Guide" width="200"></a> | ||
<a href="https://standardjs.com"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard - JavaScript Style Guide" width="200"></a> | ||
<br> | ||
@@ -10,6 +10,6 @@ JavaScript Standard Style | ||
<p align="center"> | ||
<a href="https://travis-ci.org/feross/standard"><img src="https://img.shields.io/travis/feross/standard/master.svg" alt="Travis"></a> | ||
<a href="http://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
<a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/dm/standard.svg" alt="npm downloads"></a> | ||
<a href="https://travis-ci.org/feross/standard"><img src="https://img.shields.io/travis/feross/standard/master.svg" alt="travis"></a> | ||
<a href="https://www.npmjs.com/package/standard"><img src="https://img.shields.io/npm/v/standard.svg" alt="npm version"></a> | ||
<a href="https://www.npmjs.com/package/eslint-config-standard"><img src="https://img.shields.io/npm/dm/eslint-config-standard.svg" alt="npm downloads"></a> | ||
<a href="https://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Standard - JavaScript Style Guide"></a> | ||
</p> | ||
@@ -20,8 +20,6 @@ | ||
<p align="center"> | ||
<em> | ||
Translations: | ||
<a href="docs/README-ptbr.md">Português</a>, | ||
<a href="docs/README-esla.md">Spanish</a>, | ||
<a href="docs/README-zhtw.md">繁體中文</a> | ||
</em> | ||
Translations: | ||
<a href="docs/README-ptbr.md">Português</a>, | ||
<a href="docs/README-esla.md">Spanish</a>, | ||
<a href="docs/README-zhtw.md">繁體中文</a> | ||
</p> | ||
@@ -31,12 +29,16 @@ | ||
No decisions to make. No `.eslintrc`, `.jshintrc`, or `.jscsrc` files to manage. It just | ||
works. | ||
## JavaScript style guide, with linter & automatic code fixer | ||
This module saves you (and others!) time in two ways: | ||
This module saves you (and others!) time in three ways: | ||
- **No configuration.** The easiest way to enforce consistent style in your | ||
project. Just drop it in. | ||
- **Catch style errors before they're submitted in PRs.** Saves precious code | ||
review time by eliminating back-and-forth between maintainer and contributor. | ||
- **Automatically format code.** Just run `standard --fix` and say goodbye to | ||
messy or inconsistent code. | ||
- **Catch style issues & programmer errors early.** Save precious code review | ||
time by eliminating back-and-forth between reviewer & contributor. | ||
No decisions to make. No `.eslintrc`, `.jshintrc`, or `.jscsrc` files to manage. It just | ||
works. | ||
Install with: | ||
@@ -178,8 +180,10 @@ | ||
This module saves you time in two ways: | ||
This module saves you (and others!) time in three ways: | ||
- **No configuration.** The easiest way to enforce consistent style in your | ||
project. Just drop it in. | ||
- **Catch style errors before they're submitted in PRs.** Saves precious code | ||
review time by eliminating back-and-forth between maintainer and contributor. | ||
- **Automatically format code.** Just run `standard --fix` and say goodbye to | ||
messy or inconsistent code. | ||
- **Catch style issues & programmer errors early.** Save precious code review | ||
time by eliminating back-and-forth between reviewer & contributor. | ||
@@ -212,3 +216,3 @@ Adopting `standard` style means ranking the importance of code clarity and | ||
[<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/nodesource.png>](https://nodesource.com) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/greenkeeper.png>](https://greenkeeper.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/karma.png>](https://karma-runner.github.io) | [<img width=150 src=https://cdn.rawgit.com/feross/standard/master/docs/logos/taser.png>](https://www.taser.com) | | ||
|---|---|---|---|---| | ||
|---|---|---|---| | ||
@@ -304,12 +308,12 @@ In addition to companies, many community members use `standard` on packages that | ||
[![Standard - JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
```md | ||
[![Standard - JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) | ||
``` | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](http://standardjs.com/) | ||
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) | ||
```md | ||
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](http://standardjs.com/) | ||
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) | ||
``` | ||
@@ -615,17 +619,23 @@ | ||
Lint the provided source `text` to enforce JavaScript Standard Style. An `opts` object may | ||
be provided: | ||
Lint the provided source `text`. An `opts` object may be provided: | ||
```js | ||
var opts = { | ||
{ | ||
cwd: '', // current working directory (default: process.cwd()) | ||
filename: '', // path of the file containing the text being linted (optional, though some eslint plugins require it) | ||
fix: false, // automatically fix problems | ||
globals: [], // global variables to declare | ||
plugins: [], // eslint plugins | ||
envs: [], // eslint environment | ||
parser: '' // js parser (e.g. babel-eslint) | ||
globals: [], // custom global variables to declare | ||
plugins: [], // custom eslint plugins | ||
envs: [], // custom eslint environment | ||
parser: '' // custom js parser (e.g. babel-eslint) | ||
} | ||
``` | ||
The `callback` will be called with an `Error` and `results` object: | ||
Additional options may be loaded from a `package.json` if it's found for the | ||
current working directory. | ||
The `callback` will be called with an `Error` and `results` object. | ||
The `results` object will contain the following properties: | ||
```js | ||
@@ -640,3 +650,4 @@ var results = { | ||
errorCount: 0, | ||
warningCount: 0 | ||
warningCount: 0, | ||
output: '' // fixed source code (only present with {fix: true} option) | ||
} | ||
@@ -649,2 +660,7 @@ ], | ||
### `results = standard.lintTextSync(text, [opts])` | ||
Synchronous version of `standard.lintText()`. If an error occurs, an exception is | ||
thrown. Otherwise, a `results` object is returned. | ||
### `standard.lintFiles(files, [opts], callback)` | ||
@@ -683,3 +699,3 @@ | ||
- **[snazzy](https://github.com/feross/snazzy)** - pretty terminal output for standard | ||
- **[standard-www](https://github.com/feross/standard-www)** - code for http://standardjs.com | ||
- **[standard-www](https://github.com/feross/standard-www)** - code for https://standardjs.com | ||
- **[semistandard](https://github.com/Flet/semistandard)** - standard, with semicolons (if you must) | ||
@@ -686,0 +702,0 @@ |
# JavaScript Standard Style | ||
Translations: [Português](docs/RULES-ptbr.md), [Spanish](docs/RULES-esla.md), [繁體中文](docs/RULES-zhtw.md) | ||
Translations: [Português](docs/RULES-ptbr.md), [Spanish](docs/RULES-esla.md), [繁體中文](docs/RULES-zhtw.md), [简体中文](RULES-zhcn.md) | ||
@@ -5,0 +5,0 @@ [![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
284965
19
0
701
8
+ Addedeslint@3.19.0(transitive)
+ Addedeslint-config-standard@10.0.0(transitive)
+ Addedeslint-plugin-node@4.2.3(transitive)
+ Addedeslint-plugin-standard@2.2.0(transitive)
+ Addedstandard-engine@7.0.0(transitive)
- Removedeslint@3.18.0(transitive)
- Removedeslint-config-standard@8.0.0-beta.2(transitive)
- Removedeslint-plugin-node@4.1.0(transitive)
- Removedeslint-plugin-standard@2.1.1(transitive)
- Removedhome-or-tmp@2.0.0(transitive)
- Removedos-tmpdir@1.0.2(transitive)
- Removedstandard-engine@5.4.0(transitive)
Updatedeslint@~3.19.0
Updatedeslint-plugin-node@~4.2.2
Updatedstandard-engine@~7.0.0