如何在coffeescript中启用和谐语法支持
How to enable harmony syntax support in coffeescript?
我使用带有--harmony
标志的node.js(0.11.13),使用function *()
和yield
关键字。
我试图在coffeescript的帮助下简化我在node.js上的开发,到目前为止它工作得很好,但我遇到了yield
和声明生成器的麻烦-它抱怨'保留关键字yield'。
任何想法?
另一种打开黑色维度大门的方法是:
co = require 'co'
sleep = require 'co-sleep'
co(`function*(){1`
console.log 'hi!'
`yield sleep(1000)`
console.log 'bye!'
`1}`)()
这似乎是完全有效的咖啡脚本,虽然,webstorm cofeescript插件哭的错误,但它的工作。
还有以下解决方案(香草coffeescript和gulp)是可能的:
co = require 'co'
sleep = require 'co-sleep'
$ = (cor) -> cor
$yield = (cor) -> cor
do co $ ->
console.log "hi!"
$yield sleep(1000)
console.log "bye!"
gulp.task 'node-js', ->
gulp.src config.srcServerJs, {base: config.srcServerJsBase}
.pipe plumb()
.pipe coffee()
.pipe replace(/'$'(function'(/g, ''$(function*(')
.pipe replace(/'$yield'(/g, 'yield (')
.pipe gulp.dest(config.dstServerJs)
magic: no errors in IDE:)
在尝试并阅读了大量关于coffee、ecma6及其未来的资料后,我决定放弃coffeescript,转而使用支持traceur的ecma6 (node.js和客户端)
现在可以在coffeescript 1.9.x中使用yield
来自coffeescript的网站
CoffeeScript函数也通过yield关键字支持ES6生成器函数。这里没有
function*(){}
的废话——CoffeeScript中的生成器只是一个生成。
的例子:
perfectSquares = ->
num = 0
loop
num += 1
yield num * num
return
使用(例如)我的fork: https://github.com/xixixao/coffee-script
生成器支持(yield关键字)在一段时间前登陆主分支,但尚未发布。
你可以通过NPM获得它,并把它作为一个依赖放在package.json中:
npm i jashkenas/coffeescript
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- jQuery语法添加了var
- Javascript未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 如何告诉MathJax对下标使用替代语法
- Javascript语法向设置发出sessionStorage值
- 未捕获的语法错误:意外的标记{
- 使用$scope方法时的ControllerAs语法
- "未捕获的语法错误:意外的标记}"
- javascript自执行函数-不同的语法
- 函数的Javascript语法
- WinJS内联绑定语法
- 使用JS函数来使用另一个函数的语法?node.js
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- 有没有针对带有表的JavaScript的Markdown语法解析器
- 在递归生成器函数中,yield后面的*(星号/星号)语法意味着什么
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- 当使用控制器作为语法时,如何从父指令继承属性
- 如何在coffeescript中启用和谐语法支持