【问题标题】:casperjs unable to run CoffeeScript scriptscasperjs 无法运行 CoffeeScript 脚本
【发布时间】:2014-04-16 19:34:05
【问题描述】:

我第一次安装了 casperjs 并运行了示例脚本。第一个示例脚本 (javascript) 运行顺利。然后我尝试运行我更喜欢的咖啡脚本示例,并收到以下错误:

无法加载脚本 test.coffee;检查文件语法

我搜索了答案,但唯一的 related issue 中的解决方案对我不起作用。我能够将 CoffeeScript (test.coffee) 编译成 JavaScript (test.js),然后再次运行编译后的 JavaScript,没有不雅。

我试图通过在 casperjs 文件中搜索错误消息来追踪错误。我在 ~/.node/lib/node_modules/casperjs/bin/bootstrap.js 文件的末尾发现了错误消息,它将控制权传递给了 phantomjs。我创建了一个简单的 CoffeeScript:test_phantomjs.coffee:

console.log "hello phantomjs"
phantom.exit()

并运行脚本 (phantomjs test_phantomjs.coffee),结果如下:

无法打开“test_phantomjs.coffee”

在这一点上,我不知所措。这个问题比任何事情都更不便,因为编译成 JavaScript 解决了这个问题。他们是我缺少的东西吗?

【问题讨论】:

  • 你解决过这个问题吗?我遇到了同样的问题。我注意到我的脚本适用于 OSX,但不适用于 Ubuntu。
  • 在 Phantom 1.9.0 上有同样的问题。通过更新到最新版本的 phantomjs(撰写本文时为 1.9.8)解决了问题。

标签: coffeescript phantomjs casperjs


【解决方案1】:

在 Phantomjs2.0 中删除了对咖啡脚本的支持

https://github.com/ariya/phantomjs/issues/12410

【讨论】:

    【解决方案2】:

    (免责声明:我是/曾经是贡献团队的一员) CasperJS 对咖啡脚本的支持取决于您使用的 phantomJs 版本,因为这是提供开箱即用的咖啡脚本支持的 phantomjs。

    您还可以使用和安装 slimerjs (https://slimerjs.org),在我看来,它比 phantomjs 性能更高,并且支持咖啡脚本。

    米凯尔

    【讨论】:

      【解决方案3】:

      为我工作。你能发布你的 PhantomJS 版本和平台吗?

      我在 Mac OS X 上:

      $ phantomjs -v
      1.9.8
      

      正常工作:

      $ phantomjs test_phantomjs.coffee 
      hello phantomjs
      

      【讨论】:

        【解决方案4】:

        正如其他人所说,PhantomJS v2.x 不再支持 CoffeeScript。

        因此,现在您有 2 个选项来使用 CoffeeScript 运行 PhantomJS:

        • 使用 PhantomJS v1.9.8 运行纯 *.coffee 文件
        • *.coffee文件编译为*.js,并使用PhantomJS v2.x运行*.js

        我推荐后一种最新的方式,这就是package.json 的样子:

        {
            "scripts": {
                "pretest": "npm install && coffee --compile **/*.coffee",
                "test": "casperjs test --fail-fast script/*.js",
                "watch": "coffee --watch --compile **/*.coffee"
            }
        }
        

        ymkjp/phantomjs2x_coffee_sample查看更多详情。

        顺便说一句,这是在 Ubuntu 上安装 PhantomJS v1.9.8 的方法。

        $ sudo apt-get update
        $ sudo apt-get install build-essential g++ flex bison gperf ruby perl \
          libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \
          libpng-dev libjpeg-dev python libx11-dev libxext-dev git
        $ cd ~
        $ wget -O- https://github.com/ariya/phantomjs/archive/1.9.8.tar.gz | tar zxvf -
        $ cd ~/phantomjs-1.9.8
        $ bash build.sh  # It takes 30 min or so (Up to your host machine)
        $ sudo ln -s ~/phantomjs-1.9.8/bin/phantomjs /usr/local/bin
        $ phantomjs --version
        1.9.8
        

        干杯。

        【讨论】:

        • 我建议添加一个像这样的监视任务"watch": "coffee -o js/ -cw src/"
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多