mirror of
https://github.com/jashkenas/coffeescript.git
synced 2022-11-09 12:23:24 -05:00

* Upgrade Babeli (now babel-minify) which fixes the bug that was forcing us to run Babel twice for transpilation * Add --transpile option (WIP) * Node API always compiles a string, so it doesn’t need the option to pass a path to an options file, it can always just pass an object to `transpile`; get `transpile` working with `eval` * Not allowing argument to `--transpile` so don’t need to cover so many cases * Don’t need to worry about `sourceMaps` option to pass to Babel, `inputSourceMap` overrides it * Rewrite Webpack test to use Node API * Make the compiler safe again for browsers and Webpack/Browserify * Node version of CoffeeScript.compile passes reference to Babel if transpile is requested * Test Node API for transpile option * Test for merged source maps * Test for Node API error message * Only stop searching for Babel options if a package.json has a truthy "babel" key * Update docs
1.5 KiB
1.5 KiB
Node.js
If you’d like to use Node.js’ CommonJS to require
CoffeeScript files, e.g. require './app.coffee'
, you must first “register” CoffeeScript as an extension:
require 'coffeescript/register'
App = require './app' # The .coffee extension is optional
If you want to use the compiler’s API, for example to make an app that compiles strings of CoffeeScript on the fly, you can require
the full module:
CoffeeScript = require 'coffeescript'
eval CoffeeScript.compile 'console.log "Mmmmm, I could really go for some #{Math.pi}"'
The compile
method has the signature compile(code, options)
where code
is a string of CoffeeScript code, and the optional options
is an object with some or all of the following properties:
options.sourceMap
, boolean: if true, a source map will be generated; and instead of returning a string,compile
will return an object of the form{js, v3SourceMap, sourceMap}
.options.inlineMap
, boolean: if true, output the source map as a base64-encoded string in a comment at the bottom.options.filename
, string: the filename to use for the source map. It can include a path (relative or absolute).options.bare
, boolean: if true, output without the top-level function safety wrapper.options.header
, boolean: if true, output theGenerated by CoffeeScript
header.options.transpile
, object: if set, this must be an object with the options to pass to Babel. See Transpilation.