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

Bry*_*yan 7 coffeescript electron

有什么特别的东西要让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 >]
Run Code Online (Sandbox Code Playgroud)

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

App threw an error when running [SyntaxError: /Users/foo/develop/electron/main.coffee:13
###
^
Unexpected token ILLEGAL]
Run Code Online (Sandbox Code Playgroud)

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

fie*_*edl 13

我认为,主文件main.js必须是javascript.但是你可以要求咖啡文件,例如application.coffee,使用咖啡脚本.

main.js

// main.js
require('coffee-script').register();
require('./application')
Run Code Online (Sandbox Code Playgroud)

application.coffee

# application.coffee
app = require('app')
BrowserWindow = require('browser-window')
# ...
Run Code Online (Sandbox Code Playgroud)

安装咖啡脚本

包括在你的package.json:

{
  ...
  "devDependencies": {
    "electron-prebuilt": "^0.33.1",
    "coffee-script": "~1.10.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

并运行:

npm install
Run Code Online (Sandbox Code Playgroud)


Ice*_*yEC 7

我最近发现,您可以执行以下操作,而不是转换为Javascript:

<script>
  require('coffee-script').register();
  require('../src/app/boot');
Run Code Online (Sandbox Code Playgroud)

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

我在应用程序https://github.com/postcasio/hearthdash中找到了它,所以有更多的例子.


edi*_*999 6

没有办法做到这一点(原子不附带coffeescript编译器),但你可以使用coffeescript的watch选项,

-w, - watch监视更改和重新运行命令的脚本

例如:

coffee -w main.coffee 在你的情况下.