【问题标题】:Can I use CoffeeScript to write my Electron (Atom Shell) application?我可以使用 CoffeeScript 来编写我的 Electron (Atom Shell) 应用程序吗?
【发布时间】:2015-07-29 08:17:46
【问题描述】:

要让 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 目录中,但这似乎没有帮助。

【问题讨论】:

  • 我猜你必须先将 CoffeeScript 转译成 JavaScript,然后再交给 Electron。
  • Electron 支持直接运行 CS 吗?如果没有:让文件观察程序自动编译为 JS,那么您只是在执行常规 JS。

标签: coffeescript electron


【解决方案1】:

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

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

例如:

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

      我认为,主文件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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多