Jshint: Agregar soporte para la configuración experimental

Creado en 30 jul. 2015  ·  29Comentarios  ·  Fuente: jshint/jshint

JSHint debería exponer la funcionalidad experimental / inestable a través de una configuración que haga que ese estado sea obvio para los consumidores. Esto es lo que propongo:

.jshintrc archivos:

{
  "experimental": {
    "expnt": true,
    "async": true
  }
}

Directivas en línea:

// jshint.experimental expnt: true
/* jshint.experimental async: true */

Aunque estoy usando propuestas de etapa 2 existentes en los ejemplos, me gustaría implementar el mecanismo de configuración antes de cualquier opción específica.

Elegí la palabra clave "experimental", pero también me gusta "inestable", ya que comunica de manera más explícita la expectativa de cambios importantes entre lanzamientos importantes. @ jshint / core ¿alguna idea sobre eso?

ES7 P2 Proposal

Comentario más útil

async y await ahora están activos en el Nodo 7.6. Algún avance en esto ?

Todos 29 comentarios

  • ¿Son experimental: true y experimental: false valores válidos? (Para habilitar / deshabilitar todas las funciones experimentales) (Estoy en contra de experimental: true porque tendría el mismo problema de enforceall )
  • ¿ experimental implica esversion: 6 ?

    En caso afirmativo, ¿ esversion: 5 implica experimental: false ?

¿Algún progreso en esto?

Ninguno todavía. ¡Háganos saber si desea ayudar!

@jugglinmike Me experimental: [] y una función experimental que pueda aprovecharlo?

@tschuy ¡Genial! Esperaba implementar la lógica de análisis de la configuración por separado de cualquier característica específica. Será bastante mínimo, y solo podrá probar la opción como se especifica a través del archivo RC (básicamente, solo que "experimental": {} no debería arrojar errores; no hay equivalente para una línea "vacía" directiva).

Veo que usó corchetes en su comentario. No estoy seguro de si esto fue solo un error tipográfico de su parte, pero la solución que he descrito especifica esto como un valor de objeto.

Me estoy desasignando por ahora; parece que era demasiado optimista cuando creé este problema.

  1. @tschuy ¿
  2. ¿Qué piensas para permitir experimental.option ?
    p.ej

    // jshint option: true, experimental.option: true
    

    que es más corto que

    // jshint option: true
    // jshint.experimental option: true
    

Hola a todos,
puedo preguntar - ¿hay algún progreso en este tema?
Muchas gracias.

¿hay noticias?

¡queremos empezar a utilizar ES7!

@phra ¿con qué característica de ES7 tiene problemas al usar JSHint?

acabo de probar en el sitio web oficial -> http://jshint.com/

intente escribir una función asincrónica de ES7: toma la palabra clave 'async' como variable y arroja un error.

No existe tal característica en ES7 / ES2016. Aquí hay una buena publicación de blog que enumera la totalidad de las características de ES7 / ES2016: http://www.2ality.com/2016/01/ecmascript-2016.html

http://kangax.github.io/compat-table/esnext/

La función async está en la etapa 3 de la estandarización de ES2017, aún no está en la etapa 4, pero babel las admite y son MUY geniales y ahorran tiempo.

¿Está planeando implementar soporte para ellos?

JSCS los admite -> http://jscs.info/rule/disallowSpacesInFunctionExpression

Estoy usando jshint y jscs para QA y jshint me impide agregar compatibilidad con la función babel w / async a mi proyecto.

La función asíncrona se encuentra en la etapa 3 de la estandarización ES2017

La función no cumplió con la fecha límite de ES2017. JSHint se compromete a respaldar la etapa 2 o superior, pero requiere recursos humanos y tiempo para implementarla.

async y await ahora están terminados y en el último borrador de la especificación ES2017.

Ahora también se envían en Chrome y Firefox. ¿Podemos reevaluar este tema?

[actualización] la propuesta está terminada por lo que debería aparecer en el último borrador de la ES2017, pero no es así. No estoy seguro de lo que eso significa.

[actualización2] ¡ajá! acaba de fusionarse en la especificación: https://github.com/tc39/ecma262/pull/692

async y await ahora están activos en el Nodo 7.6. Algún avance en esto ?

Este problema es la ubicación definitiva para realizar un seguimiento de la solicitud de función, por lo que si
hubo alguna información nueva, puede esperar encontrarla aquí. Lo harias
¿Le gustaría ayudar?

¿Aún no tienes soporte para await / async? Triste...

@xduseko , JSHint es un software de código abierto mantenido por un grupo de colaboradores voluntarios.

Cualquiera puede bifurcar el repositorio, implementar async / await y enviar una solicitud de extracción con pruebas. O cualquiera puede esperar hasta que el equipo central encuentre suficiente tiempo libre para implementarlo.

¿Qué esperabas ganar con tu comentario?

@xduseko Sí, estoy de acuerdo en que es un poco triste, pero eventualmente estará allí, estoy seguro. :dedos cruzados:
Si es de algún alivio; ahora mismo JSLint tampoco lo tiene.

Debido a que faltaba async / await, intenté migrar a ESLint pero fue un gran problema. Finalmente volví a cambiar a JSHint. Cualquier linter, creo que JSHint sigue siendo el mejor, representa un valor tremendo al escribir JavaScript.

Para llevarme bien, solo estoy entrenando mi ojo para ignorar las declaraciones asíncronas / de espera resaltadas en mi IDE. 🙈

A diferencia de @semmel, no puedo entrenar mi ojo para ignorar los errores asincrónicos / de espera. De hecho, si utilizo una variable no declarada antes de usar async / await, no mostrará un error para la variable no declarada y eso es un poco molesto.

¿Hay alguna manera de hacer que JSHint ignore las cosas asíncronas / en espera por ahora?

@johnRivs debe migrar a eslint o tslint .

Apoyando esto.

ESTA. ES. INCREÍBLE.

¿Es expnt exponente ? Si es así, ¿puede llamarse exponent ? Acrns dnt hlp unstdng.

¿Es exponente expnt? Si es así, ¿puede llamarse exponente? Acrns dnt hlp unstdng.

@jugglinmike ^^

@mikemaccana Estaba destinado a serlo, sí. Sin embargo, ha llegado el momento de un soporte "inestable" para el operador de exponenciación (estará disponible a través de esversion: 7 en la próxima versión menor), por lo que nunca veremos esa opción en particular implementada. Sin embargo, su consejo es bien escuchado, ¡así que gracias!

La solución más elegante en este momento parece ser buscar y reemplazar async con /* async */ y viceversa si está validando a través del sitio web JSHint.

@patrickdark Esa es una solución parcial para gh-2604, pero desafortunadamente no tiene en cuenta AwaitExpressions.

¿Fue útil esta página
0 / 5 - 0 calificaciones