2012-02-02 90 views
4

我不是100%是什麼造成這種情況,但有些東西正在通過CoffeeScript編譯器(coffee.cmd)過去。我剛剛在Windows機器上安裝了node.js和CoffeeScript。如果我編譯這樣的文件:構建正在創建'-p'文件夾

coffee.cmd -c test.coffee 

我得到的test.js完全沒問題。我有一個建立在Sublime Text 2中的構建腳本,它是通用的,所以我可以從任何目錄構建。當它編譯,它使用文件的完整路徑,像這樣:

coffee.cmd -c C:\Users\Spencer\test.coffee 

現在,這個輸出test.js如預期,但由於某些原因,它也創造了在同一目錄空「-p」 。我不確定它爲什麼這樣做。任何幫助都會非常讚賞。謝謝!

回答

7

我不能肯定,因爲我沒有Windows方便,但command.coffee有這樣的:

# Write out a JavaScript source file with the compiled code. By default, files 
# are written out in `cwd` as `.js` files with the same name, but the output 
# directory can be customized with `--output`. 
writeJs = (source, js, base) -> 
    #... 
    path.exists jsDir, (exists) -> 
    if exists then compile() else exec "mkdir -p #{jsDir}", compile 

這看起來像你的問題的來源一個很好的候選人。在Unixish系統(Linux,OSX,FreeBSD,Cygwin等)上,mkdir -p將創建所需的目錄和所需的任何中間目錄。我懷疑標準的Windows mkdir不知道-p是什麼意思,所以它代替了兩個目錄。

您可以修復CoffeeScript的編譯器的源使用的mkdir -p的特定Windows版本的本地版本,或者你可以嘗試安裝Cygwin得到mkdir是知道什麼-p手段。向CoffeeScript維護人員發送錯誤報告也會很好(但可能沒有必要,因爲他們會自己找到這個問題)。

+0

確實是這個問題,謝謝!我剛剛在我的本地版本中更改了command.js,但我正在考慮創建一個可檢測操作系統並執行正確操作的修補程序。 – SpencerElliott 2012-02-02 14:09:38

+1

我已經在github上爲任何有此問題的人提交了一個pull請求:https://github.com/jashkenas/coffee-script/pull/2091 – SpencerElliott 2012-02-02 14:28:25

+1

正如進一步的說明一樣,如果您想編寫刪除腳本'-p'目錄使用'rm -rf -p'; '--'阻止'rm'將'-p'作爲標誌。 – 2012-06-29 18:30:16