Ace: [JavaScriptリンティング]ESNextのサポート(非同期/待機、クラスプロパティなど)

作成日 2016年12月06日  ·  11コメント  ·  ソース: ajaxorg/ace

ES6 +機能のサポートを改善するために、ESLintを使用するようにJavaScriptヒントを変更することをお勧めします。

クラスプロパティを使用して非同期/待機できるようにしたいのですが、jshintよりもはるかに優れたリンティングルールが他にもたくさんあります。

class Foo {
    bar = 'baz';
}
async function foo () {
    const bar = await baz();
}

これがjavascriptリンターを交換するのがどれほど難しいかを調べていないので、これがどれほど現実的なリクエストであるかはわかりません。

linters

最も参考になるコメント

Pleaaaaseはこの問題に取り組んでいます。

全てのコメント11件

これは良い考えであり、#3180にも必要です。
ESLintのWebデモファイルに基づいて作成することができます。

Pleaaaaseはこの問題に取り組んでいます。

新しいJSHintバージョン2.10.0がリリースされ、新機能がサポートされています。

一時的な回避策として-私はACEtypescriptを使用しましたが、すでにawait/asyncがあります。

Typescriptはエラーを表示しませんが、他の多くのエラーを見逃します。

8**2のような新しい数学演算子を含むすべてのes6構文を非同期/待機するだけではありません

本日現在、この号は3年前のものです。 Reactはもうしばらく出ていないので、確かにこれに対する需要は高まっています。 プロジェクトはまだかなり活発ですが、これが公式のロードマップにあることを示すものはなく、「そう、私たちがしなければならないことであり、おそらくそれを行うつもりです」と思われます。

ここで何らかの更新を_お願い_できますか? @nightwing@adamjimenez

CSSファイルのリンターを見つけようとしたときにこれを見つけ、自分の何かを仮帆装しました。_ /mode/javascript_worker.js_🔗

この構成は、少なくともjavascriptワーカーのJavascriptワーカーモードで作業している場合は、ESNextサポート用にすでに設定されていることを示唆しているようです。 個人的にはこれは光を当てませんでしたが、おそらくこれはすべての人の1人を助けることができます

jshint.jsファイルを最新のものに置き換えてからaceを再構築してみました。 これにより、async/awaitでエラーが表示されるのを防ぎます。 ただし、他のシナリオ(角かっこがない、閉じられていない文字列など)でエラーが表示されるのも防ぎます。 非常に苛立たしいことですが、エースプロジェクトは死んでいると思います。

私もこれをいじっていて、それを機能させることができました。 ドキュメントを更新することができ、エコシステム全体がどのように機能するかを掘り下げるのはかなり苦痛でした(数時間かかりました)そして、必要なすべての変更は1行であることがわかりました...:/

いくつかのオプションがあります:
1)パッケージ化/縮小バージョンをインポートしたばかりの場合-「esnext:!0」を「esversion:9」に置き換える必要があります
https://raw.githubusercontent.com/ajaxorg/ace-builds/master/src-min/worker-javascript.js
2)リポジトリをチェックアウトして自分で構築できます。 (約1分かかるので、これもかなり簡単です)

git clone [email protected]:ajaxorg/ace.git
npm install
nano +82 lib/ace/mode/javascript_worker.js // replace "esnext: true," with "esversion: 9"
node Makefile.dryice.js full --target ../ace-builds

更新:私の最後のコメントが別の方法を見つけたので:

var editor = ace.edit("editor");
editor.session.on('changeMode', function(e, session){
    if ("ace/mode/javascript" === session.getMode().$id) {
        if (!!session.$worker) {
            session.$worker.send("setOptions", [{
                "esversion": 9,
                "esnext": false,
            }]);
        }
    }
});
editor.session.setMode("ace/mode/javascript");

素晴らしい!! ES6の6など、他のバージョンを指定できるかどうかを示すものはありますか?

また、他の人がgitを初めて使用する場合や、GithubでSSHを設定していない場合は、 git clone https://github.com/ajaxorg/ace.git/でクローンを作成することもできます。 _私が認めたいよりも何度もそれを見つけました_

このページは役に立ちましたか?
0 / 5 - 0 評価