如果我做如何從CoffeeScript腳本中啓動CoffeeScript repl?
repl = require 'repl'
repl.start {useGlobal: true}
它啓動一個節點REPL。我如何開始使用CoffeeScript repl?
感謝
如果我做如何從CoffeeScript腳本中啓動CoffeeScript repl?
repl = require 'repl'
repl.start {useGlobal: true}
它啓動一個節點REPL。我如何開始使用CoffeeScript repl?
感謝
NESH是一個項目,試圖使這個更容易一點的,可擴展:
它提供了一種嵌入有多個語言,如CoffeeScript的支持REPL以及提供asyncronous插件架構,支持在啓動REPL,等。例如上下文中執行代碼:
nesh = require 'nesh'
nesh.loadLanguage 'coffee'
nesh.start (err, repl) ->
nesh.log.error err if err
它還支持了一堆用默認插件選項,並暴露了一些內置方便FUNC蒸發散還有:
opts =
welcome: 'Welcome to my interpreter!'
prompt: '> '
evalData: CoffeeScript.compile 'hello = (name="world") -> "Hello, #{world}!"', {bare: true}
nesh.start opts, (err, repl) ->
nesh.log.error err if err
我認爲coffee-script
模塊不導出REPL功能以編程方式使用,如節點repl
模塊一樣。但CoffeeScript有一個repl.coffee
文件可以使用,即使它不在主模塊coffee-script
中導出。以a hint from command.coffee
(這是執行coffee
命令時執行的文件),我們可以看到REPL只需要repl
文件。因此,運行此腳本應該啓動CoffeeScript的REPL:
require 'coffee-script/lib/coffee-script/repl'
這種做法,但是,相當哈克。最重要的缺陷在於它很大程度上取決於模塊在內部的工作方式以及它的組織方式。沒有什麼能夠阻止repl.coffee
文件從coffee-script/lib/coffee-script
中移出,或者改變它的工作方式。
一個更好的辦法來調用一個不帶參數的coffee
命令,就像人們從命令行做的,從節點:
{spawn} = require 'child_process'
spawn 'coffee', [], stdio: 'inherit'
的stdio: 'inherit'
option使得催生命令從標準輸入讀取和寫入到標準輸出目前的過程。
http://coffeescript.org/documentation/docs/repl.html –
這就是我最後做,但我認爲會有一個更好的解決方案。 – Nick