2012-09-14 12 views
5

Estoy usando coffee-script.js para permitirme compilar pequeños fragmentos de coffeescript en javascript dentro del navegador. Esto me permite hacer:Acceso a la opción desnuda al usar Coffeescript.compile

eval(Coffeescript.compile("console.log 'yo'")) 

Pero esto devuelve una función envuelto, como esto:

(function() { 

    console.log('yo') 

}).call(this); 

me gustaría conseguir un regalo sin envolver fragmento de código, de modo que pueda llamar a las funciones que estarían en alcance si no fuera por el contenedor de funciones. ¿Alguna sugerencia aparte de una expresión regular para despojarla a mano?

Respuesta

9

se puede pasar la opción bare en el segundo argumento de compile:

// In JS 
CoffeeScript.compile("console.log 'yo'", {bare: true}) 

# In CS :) 
CoffeeScript.compile "console.log 'yo'", bare: on 

pero también se puede utilizar directamente CoffeeScript.eval. Hará exactamente lo que está buscando :)

+3

¿Hay algún lugar donde estas opciones estén documentadas? –

+0

Buena pregunta. No encontré ninguna documentación oficial, solo aparece la opción 'bare' de leer la sección [#usage] (http://coffeescript.org/#usage) en coffeescript.org y jugar con el objeto CoffeeScript en la consola del nodo (o el navegador). – epidemian

+0

Compré un pequeño libro y lo encontré útil: http://arcturo.github.com/library/coffeescript/index.html – Rockbot

Cuestiones relacionadas