是否可以在html文件中的脚本标签中编译Coffeescript代码?

时间:2011-10-22 16:32:53

标签: html coffeescript

  

可能重复:
  Is there a way to send CoffeeScript to the client's browser and have it compiled to JavaScript there?

有没有一种简单的方法来编译html里面的<script>标签内的Coffeescript,或者你通常把所有Coffeescript放在不同的文件中?

2 个答案:

答案 0 :(得分:15)

确实有。有关于它的帖子here

该文章的摘要如下:

  1. 在HTML文档中包含类型为text/coffeescript
  2. 的脚本
  3. 包含在页面的这一行:

    <script type="text/javascript" src="https://raw.githubusercontent.com/jashkenas/coffeescript/master/lib/coffee-script/coffee-script.js"></script>
    
  4. 请注意不要鼓励这样做。

    <html>
    
    <head>
      <title>In-Browser test</title>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript">
      </script>
      <script src="https://raw.githubusercontent.com/jashkenas/coffeescript/master/lib/coffee-script/coffee-script.js" type="text/javascript">
      </script>
    
    </head>
    
    <body>
      <script type="text/coffeescript">
        $ -> $('#header').css 'background-color', 'green'
      </script>
      <h1 style="color:white" id="header">CoffeeScript is alive!</h1>
    
    
    </body>
    
    </html>

答案 1 :(得分:6)

回应dvcolgan的澄清评论:

因此,您希望在服务器上拥有一个HTML文件,其内嵌CoffeeScript可以作为带内联JavaScript的HTML提供。 CoffeeScript编译器不直接支持这一点,但你可以使用coffee-script库和jsdom编写一个Node脚本来轻松地完成它,并进行HTML解析。

您希望如何实现这一点取决于您正在使用的Web框架。您可能不希望CoffeeScript编译器在每个请求上运行(它非常快,但它仍然会减少服务器可以处理的请求数/秒);相反,您需要编译一次HTML,然后从缓存中提供编译版本。同样,我不知道有任何现有工具可以做到这一点,但编写自己的工具应该不会太难。