我建议更改 javascript 提示以使用 ESLint 以更好地支持 ES6+ 功能。
我希望能够最多使用类属性和 async/await,但是还有很多其他的 linting 规则比 jshint 做得更好。
class Foo {
bar = 'baz';
}
async function foo () {
const bar = await baz();
}
我还没有研究过更换 javascript linter 可能有多困难,所以我不知道这是多么现实的请求。
这是一个好主意,也是#3180 所需要的。
我们可以基于 ESLint 的web 演示文件。
请在这个问题上工作。
新的 JSHint 版本2.10.0已发布,支持新功能。
作为临时解决方法 - 我使用了 ACE 打字稿,它已经有等待/异步。
打字稿没有显示错误..但是它错过了很多其他错误。
它不仅仅是 async/await 它的所有 es6 语法,包括新的数学运算符,如8**2
到今天为止,这个问题已经3 年了。 React 现在已经发布了一段时间,因此肯定对此的需求正在增加。 该项目仍然非常活跃,但没有迹象表明这在任何官方路线图上,看起来就像是,“是的,这就是我们需要做的,我们可能会这样做。”
我们可以_please_在这里获得一些更新吗? @夜翼? @adamjimenez ?
我在尝试查找 CSS 文件的 linter 时发现了这一点,并且陪审团装配了我自己的东西,_/mode/javascript_worker.js_ 🔗
这个配置似乎表明它已经为 ESNext 支持设置了,至少在 javascript worker 的 Javascript worker 模式下工作时。 就个人而言,这并没有说明任何问题,但也许这可以帮助你们中的一个
在用最新的替换 jshint.js 文件后,我尝试重新构建 ace。 这可以防止为 async/await 显示错误。 但是,它也可以停止在其他情况下显示错误(缺少括号、未闭合的字符串等)。 非常令人沮丧,我想王牌项目已经死了。
我也一直在摆弄这个,我能够让它工作。 文档可以更新,挖掘整个生态系统的工作原理(花了几个小时)是相当痛苦的,然后才知道所有的改变都需要一行......:/
有几个选项:
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/
。 _偶然发现的次数比我想承认的要多_
最有用的评论
请在这个问题上工作。