我可以使用 CoffeeScript 编写我的 Electron (Atom Shell) 应用程序吗?

Can I use CoffeeScript to write my Electron (Atom Shell) application?

是否需要做任何特别的事情才能让 Electron 进入 运行 我的 main.coffee 文件?我有一个 main.js 文件(有效),我将其转换为 CoffeeScript(因此 main.coffee),但是当我 运行 Electron main.coffee 时,我收到如下错误:

App threw an error when running [SyntaxError: /Users/foo/develop/electron/main.coffee:13
app.on('window-all-closed', ->
                             ^
Unexpected token >]

我只能假设这是一个 CoffeeScript 问题,因为当我用 CoffeeScript 的块注释 (###) 评论有问题的代码时,我得到以下信息:

App threw an error when running [SyntaxError: /Users/foo/develop/electron/main.coffee:13
###
^
Unexpected token ILLEGAL]

我将 coffee-script 添加到我的 packages.json 作为依赖项,并确保它像我的其他应用程序依赖项一样安装到我的本地 node_modules 目录,但这似乎没有来帮忙。

没有办法做到(atom 没有附带 coffeescript 编译器),但是你可以使用 coffeescript 的 watch 选项,

-w, --watch watch scripts for changes and rerun commands

例如:

coffee -w main.coffee 你的情况。

我最近发现,除了转译为 Javascript,您还可以这样做:

<script>
  require('coffee-script').register();
  require('../src/app/boot');

然后在 src/app/boot.coffee 中你可以使用普通的 CoffeeScript :)

我在应用程序中找到它 https://github.com/postcasio/hearthdash 所以那里有更多示例。

我想,主文件 main.js 必须是 javascript。但是您可以从那里使用 coffee-script.

要求咖啡文件,例如 application.coffee

main.js

// main.js
require('coffee-script').register();
require('./application')

application.coffee

# application.coffee
app = require('app')
BrowserWindow = require('browser-window')
# ...

正在安装咖啡脚本

将其包含在您的 package.json 中:

{
  ...
  "devDependencies": {
    "electron-prebuilt": "^0.33.1",
    "coffee-script": "~1.10.0"
  }
}

和运行:

npm install