【问题标题】:How can I debug CoffeeScript in my Meteor app using the WebStorm IDE如何使用 WebStorm IDE 在 Meteor 应用程序中调试 CoffeeScript
【发布时间】:2014-09-13 07:38:32
【问题描述】:

我可以使用 JavaScript 使用此问题 (How can I debug my Meteor app using the WebStorm IDE?) 中的说明在 WebStorm 中进行 Meteor 调试。

但是,我似乎无法在 coffeescript 文件中设置断点。

可以这样做吗?

【问题讨论】:

    标签: javascript coffeescript meteor webstorm


    【解决方案1】:

    @Sameer Shemma

    为了让你的技巧发挥作用,你需要:

    • 只添加这个新文件夹 .coffeejs 并更改单行 您在 watcherTasks.xml 文件中突出显示或
    • 用你的替换我的整个watcherTasks.xml 文件?

    我尝试了第一种可能性,WebStorm 仍然不会停止在 .coffee 文件中放置的大多数断点。

    第二个我不知道在我的例子中 name 属性的 "/usr/local/bin/coffee" 路径值的对应关系是什么(Windows 7,Meteor 1.4.1.2,CoffeeScript 包 1.11.1_1,WebStorm 2016.2.3),但在不改变这一点的情况下,WebStorm 仍然不会停止最多断点放置.coffee 文件。

    另外,您的技巧是否需要在我正在使用的 Meteor CoffeeScript atomosphere 包 1.11.1_1 中可能包含的编译器之外安装 CoffeeScript 文件监视程序和/或独立编译器?

    这是我当前的 watcherTasks.xml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <project version="4">
      <component name="ProjectTasksOptions">
        <TaskOptions isEnabled="true">
          <option name="arguments" value="--output $ProjectFileDir$/.coffeejs/ --map --compile $FileName$" />
          <option name="checkSyntaxErrors" value="true" />
          <option name="description" value="Compiles .coffee files into .js files" />
          <option name="exitCodeBehavior" value="ERROR" />
          <option name="fileExtension" value="coffee" />
          <option name="immediateSync" value="true" />
          <option name="name" value="CoffeeScript" />
          <option name="output" value="$FileNameWithoutExtension$.js:$FileNameWithoutExtension$.map:$FileNameWithoutExtension$.js.map" />
          <option name="outputFilters">
            <array />
          </option>
          <option name="outputFromStdout" value="false" />
          <option name="program" value="$ExecutableByFileExt$" />
          <option name="scopeName" value="Project Files" />
          <option name="trackOnlyRoot" value="true" />
          <option name="workingDir" value="$FileDir$" />
          <envs />
        </TaskOptions>
      </component>
    </project>
    

    【讨论】:

      【解决方案2】:

      我终于明白了。

      您已经添加了一个文件夹(在我的示例中为“.coffeejs”)来存储转译的 js 和地图文件,您可以随意命名它,但请记住以“.”开头的文件夹名称让 Meteor 的打包器忽略其中的文件。

      然后编辑 watcherTasks.xml 文件,您将在项目根目录的 .idea 文件夹中找到该文件,并将“arguments”值更改为以下内容:

      --output $ProjectFileDir$/.coffeejs/ --map --compile $FileName$
      

      用咖啡享受流星! :)

      【讨论】:

      • 您不应该将文件监视程序与流星一起使用。只需使用“咖啡”流星包即可享受。
      • @anstarovoyt,没有这个巫术,webstorm 不会在咖啡断点上中断。不幸的是
      【解决方案3】:

      我摆弄了一段时间,但没有取得任何巨大的成功。据我所知,为了让 WebStorm 支持咖啡脚本断点,它需要自己生成转译的 js 和地图文件……这会破坏流星,就像它自己的咖啡脚本编译一样。

      最后,我得到的最接近的是:

      1. 使用节点调试器选项运行流星:

        $ NODE_OPTIONS="--debug=47977" 流星

      2. 在 Webstorm 中设置 node.js 远程调试配置,将其指向同一端口 (47977)。

      3. 启动调试会话

      4. 在调试器的“脚本”选项卡中显示的转译 js 文件中设置断点。令人困惑的是,在这些文件上设置断点时,我的 WebStorm (8.0.4) 版本并没有在装订线中显示通常的红色圆圈图标……但它确实设置了断点并在那里中断。

      所以不理想,但总比没有好,比使用节点检查器更方便!

      【讨论】:

      • @jonathanmofatt 我试过了,但是 Meteor 仍然因为 Webstorm 制作的 JS 文件而中断
      猜你喜欢
      • 2020-09-04
      • 2019-06-18
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多