首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态编译CoffeeScript CommonJS模块

动态编译CoffeeScript CommonJS模块
EN

Stack Overflow用户
提问于 2013-05-31 19:27:26
回答 2查看 1.2K关注 0票数 0

我有一个模块:

代码语言:javascript
复制
# a.coffee:
@f = -> console.info 'Hell, oh, world!' # Note that exports == this

以及我需要它的另一个模块:

代码语言:javascript
复制
# b.coffee:
a = require './a'
a.f()

我希望在没有显式构建步骤来生成a.js的情况下,在b.coffee中运行代码。

在NodeJS中,我所需要做的就是在执行任何其他操作之前执行一次require('coffee-script')

对于浏览器,有没有类似的技巧?

EN

回答 2

Stack Overflow用户

发布于 2013-05-31 23:07:07

在我告诉你如何做之前,我想明确的是,任何人都不应该在任何类似于生产环境的环境中这样做,因为这会迫使每个浏览器在每次加载页面时编译它。考虑到这一点:

查看http://jashkenas.github.io/coffee-script/#scripts。如果您通过脚本标记将CoffeeScript编译器放在页面中,则可以使用<script type="text/coffeescript">标记包含CoffeeScript文件(甚至内联源代码)。脚本将按照它们在html中出现的顺序进行编译和运行。

票数 3
EN

Stack Overflow用户

发布于 2013-05-31 22:10:41

浏览器本身并不支持coffeescript。如果您只希望能够对咖啡文件进行更改并引用它,而不必每次都手动运行命令,则可以使用咖啡编译器查看该文件,并在对其进行更改时更新js文件。

代码语言:javascript
复制
coffee --watch --compile experimental.coffee

但是,在浏览器中工作时,必须有一个步骤来创建和引用js文件。

根据评论进行更新

既然您想要一个库支持commonjs模块,那么您可能需要研究一下browserify。它支持您想要用它的transform函数做的事情:https://github.com/substack/node-browserify#btransformtr

不过,这可能永远不会像你想的那样好。编译过程必须发生,浏览器才能读取coffeescript。出于性能原因,如果这发生在服务器上,而不是每次都使用users time 的客户机上,那会更好!

编译可以很简单。因为您只希望在服务器上有静态文件,所以编写一个脚本来获取所有咖啡文件,将它们打包到一个压缩的js文件中,然后您就可以在html中引用该文件。这可以使用can编译器或grunt之类的构建工具来完成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16856221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档