Jshint: Добавить поддержку экспериментальной конфигурации

Созданный на 30 июл. 2015  ·  29Комментарии  ·  Источник: jshint/jshint

JSHint должен предоставлять экспериментальную / нестабильную функциональность через конфигурацию, которая делает этот статус очевидным для потребителей. Вот что я предлагаю:

.jshintrc файлы:

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

Встроенные директивы:

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

Хотя в примерах я использую существующие предложения этапа 2, я хотел бы реализовать механизм конфигурации до появления какой-либо конкретной опции.

Я выбрал ключевое слово «экспериментальный», но мне также нравится «нестабильный», поскольку оно более четко передает ожидаемые критические изменения между основными выпусками. @ jshint / core есть мысли по этому поводу?

ES7 P2 Proposal

Самый полезный комментарий

async и await теперь доступны в Node 7.6. Есть новости по этому поводу?

Все 29 Комментарий

  • Действительны ли значения experimental: true и experimental: false ? (Чтобы включить / отключить каждую экспериментальную функцию) (я против experimental: true потому что это будет иметь ту же проблему, что и enforceall )
  • Под experimental подразумевается esversion: 6 ?

    Если да, означает ли esversion: 5 experimental: false ?

Есть ли в этом прогресс?

Пока нет. Пожалуйста, дайте нам знать, если хотите помочь!

@jugglinmike Я был бы рад помочь. Я еще не касался jshint, за исключением того, что использую его в своих проектах, так что это может занять у меня некоторое время, но я начну копаться в этом на следующей неделе. Было бы лучше всего сделать это как один PR для добавления experimental: [] и экспериментальной функции, которая может этим воспользоваться?

@tschuy Отлично! Я надеялся реализовать логику анализа конфигурации отдельно от какой-либо конкретной функции. Это будет довольно минимально, и вы сможете протестировать параметр, как указано в файле RC (в основном, просто "experimental": {} не должно вызывать ошибок - нет эквивалента для "пустого" встроенного директива).

Я вижу, что в своем комментарии вы использовали квадратные скобки. Не уверен, что это была просто опечатка с вашей стороны, но решение, которое я описал, указывает это как значение объекта.

Я пока отменяю назначение - похоже, я был слишком оптимистичен, когда создавал эту проблему.

  1. @tschuy Вы все еще работаете над этой функцией?
  2. Как вы думаете, чтобы разрешить experimental.option ?
    например

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

    что короче чем

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

Всем привет,
Могу я спросить - есть ли прогресс по этому вопросу?
Большое спасибо.

любые новости?

мы хотим начать использовать ES7!

@phra, с какой функцией ES7 вы испытываете проблемы при использовании JSHint?

я только что попробовал на официальном сайте -> http://jshint.com/

попробуйте написать асинхронную функцию ES7: она принимает ключевое слово async в качестве переменной и выдает ошибку.

В ES7 / ES2016 такой функции нет. Вот хороший пост в блоге, в котором перечислены все функции ES7 / ES2016: http://www.2ality.com/2016/01/ecmascript-2016.html

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

async находятся на этапе 3 стандартизации ES2017, их еще нет на этапе stage4, но babel их поддерживает, и они ОЧЕНЬ крутые и экономят время.

вы планируете реализовать для них поддержку?

JSCS поддерживает их -> http://jscs.info/rule/disallowSpacesInFunctionExpression

Я использую jshint и jscs для контроля качества, и jshint не позволяет мне добавлять в мой проект поддержку функций babel с асинхронным режимом.

асинхронные функции находятся на этапе 3 стандартизации ES2017

Функция пропустила крайний срок ES2017. JSHint стремится поддерживать этап 2 или выше, но для его реализации требуются человеческие ресурсы и время.

async и await теперь завершены и находятся в последнем проекте спецификации ES2017.

Они также теперь поставляются в Chrome и Firefox. Можем ли мы переоценить этот вопрос?

[обновить] предложение завершено, поэтому оно должно появиться в последнем проекте ES2017, но это не так. Не уверен, что это значит.

[update2] ага! просто слили со спецификацией: https://github.com/tc39/ecma262/pull/692

async и await теперь доступны в Node 7.6. Есть новости по этому поводу?

Эта проблема является окончательным местом для отслеживания запроса функции, поэтому, если
была какая-то новая информация, вы могли ожидать найти ее здесь. Не могли бы вы
хотите помочь?

По-прежнему нет поддержки await / async? Грустный...

@xduseko , JSHint - это программное обеспечение с открытым исходным кодом, поддерживаемое группой добровольцев.

Любой может выполнить форк репо, реализовать async / await и отправить запрос на перенос с тестами. Или любой может подождать, пока основная команда не найдет достаточно свободного времени для его реализации.

Что вы надеялись получить от своего комментария?

@xduseko Да, я согласен, это немного грустно, но в конечном итоге это будет - я уверен. :скрещенные пальцы:
Если это приносит облегчение; прямо сейчас у JSLint его тоже нет.

Из-за отсутствия async / await я попытался перейти на ESLint, но это было большой проблемой. В конце концов я снова переключился на JSHint. Любой линтер - я думаю, что JSHint по-прежнему лучший - представляет огромную ценность при написании JavaScript.

Чтобы жить дальше, я просто тренирую свой глаз, чтобы игнорировать выделенные операторы async / await в моей среде IDE. 🙈

В отличие от @semmel, я не могу

Есть ли способ заставить JSHint игнорировать async / await сейчас?

@johnRivs вам следует перейти на eslint или tslint .

Поддерживая это.

ЭТО. ЯВЛЯЕТСЯ. УДИВИТЕЛЬНЫЙ.

expnt показатель степени ? Если да, то можно ли это назвать exponent ? Acrns dnt hlp unstdng.

Показатель экспоненты? Если да, то можно ли это назвать экспонентой? Acrns dnt hlp unstdng.

@jugglinmike ^^

@mikemaccana Это было задумано, да. Время для «нестабильной» поддержки оператора возведения в степень уже прошло (оно будет доступно через esversion: 7 в следующем второстепенном выпуске), поэтому мы никогда не увидим реализации этой конкретной опции. Однако ваш совет хорошо слышат, так что спасибо!

На данный момент наиболее элегантным решением является поиск и замена async на /* async */ и наоборот, если вы выполняете проверку через веб-сайт JSHint.

@patrickdark Это частичный обходной путь для gh-2604, но, к сожалению, он не учитывает AwaitExpressions.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги