Javascript 如何在coffeescript中启用和谐语法支持?

Javascript 如何在coffeescript中启用和谐语法支持?,javascript,coffeescript,yield,ecmascript-harmony,Javascript,Coffeescript,Yield,Ecmascript Harmony,我使用了node.js(0.11.13)和--harmony标志,并使用了函数*()和关键字 我试图在coffeescript的帮助下简化node.js上的开发,到目前为止它工作得很好,但我在yield和声明生成器方面遇到了麻烦-它抱怨“保留关键字yield” 有什么想法吗?打开黑色维度大门的另一种方法是: co = require 'co' sleep = require 'co-sleep' co(`function*(){1` console.log 'hi!' `yie

我使用了node.js(0.11.13)和
--harmony
标志,并使用了
函数*()
关键字

我试图在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}`)()
这似乎是一个非常有效的咖啡脚本,尽管WebStormCofeeScript插件对错误大声疾呼,但它仍然有效

也可以使用以下溶液(香草咖啡和大口大口):

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)
魔术:IDE中没有错误:)

更新 在尝试并阅读了大量有关coffee、ecma6及其未来的内容后,我决定放弃coffeescript,转而使用ecma6,同时支持traceur for node.js和客户端

使用(例如)my fork:

还有其他不同语法的生成器。

生成器支持(yield关键字)不久前在master分支中登陆,但尚未发布

您可以通过NPM获得它,并将其作为依赖项放在package.json中:

npm i jashkenas/coffeescript

实际上,现在可以在coffeescript 1.9.x中使用
yield

CoffeeScript函数还通过yield关键字支持ES6生成器函数。没有什么
函数*(){}
胡说八道-CoffeeScript中的生成器只是一个生成的函数

例如:

perfectSquares = ->
  num = 0
  loop
    num += 1
    yield num * num
  return

经过4个小时的研究,我发现原来的咖啡脚本在增加产量支持方面已经停滞不前多年了。。。我只看到一些黑魔法的方法,比如用``将整个函数体放在纯js中,或者使用。。。如此悲伤:(而且hax以超强的宏功能提供支持…我真的很害怕在生产中使用它…这感觉像是黑魔法被另一个更强大的黑魔法统治。知道如何修复修改后的js源地图吗?这并不能解决webstorm中高亮显示中断的问题。我不知道如何通过n使用forks。)pmGenerators受master支持。要通过npm使用forks/master分支,请使用
npm安装jashkenas/coffee脚本(说明也在我的fork自述文件中,但该说明现已过时)。