require() 从 JavaScript 文件或 REPL 获取 CoffeeScript 文件

发布于 2024-10-14 08:28:17 字数 444 浏览 1 评论 0原文

我正在使用 Node.js 并希望将 CoffeeScript 合并到我的工作流程中。我有两个用例:

  1. 我希望能够编写 require() CoffeeScript 模块的 JavaScript 文件
  2. 我希望能够从节点 REPL 中加载 CoffeeScript 模块

对于情况 #1 :我可以从 .coffee 编译为 .jsrequire() .js模块,作为解决方法。

对于案例#2:现在我正在eval()处理coffee-script.compile()的输出。

有没有更好、更统一的方法来做到这一点?

I'm using Node.js and wanting to incorporate CoffeeScript into my workflow. I have two use-cases:

  1. I want to be able to write JavaScript files which require() CoffeeScript modules
  2. I want to be able to load CoffeeScript modules from within the node REPL

For case #1: I can just compile from .coffee to .js and require() the .js module, as a workaround.

For case #2: Right now I'm eval()ing the output of coffee-script.compile().

Is there a better, more unified way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冧九 2024-10-21 08:28:17

coffee-script 模块在需要时注册其扩展。

$ echo 'console.log "works"' > module.coffee

$ echo '
> require("coffee-script")
> require("./module")
> ' > test.js

$ node test.js
works

$ node
> require('coffee-script'); require('./module')
works
{}

编辑:随着 CoffeeScript 1.7.0 的发布,此行为发生了变化。现在你需要做:

require('coffee-script/register');

The coffee-script module registers its extension once required.

$ echo 'console.log "works"' > module.coffee

$ echo '
> require("coffee-script")
> require("./module")
> ' > test.js

$ node test.js
works

$ node
> require('coffee-script'); require('./module')
works
{}

Edit: This behaviour has changed with the relase of CoffeeScript 1.7.0. Now you need to do:

require('coffee-script/register');
糖粟与秋泊 2024-10-21 08:28:17

更通用的解决方案是使用 better-require

npm install better-require

它允许您 require() CoffeeScript 文件,无需预编译。 (它还允许您 require() 一堆其他文件格式:CoffeeScript、clojurescript、yaml、xml 等。)

对于 CoffeeScript,它只需要 coffee-script< /代码> 模块。

require('better-require')();
var myModule = require('./mymodule.coffee');
var clojurescriptModule = require('./mymodule.cljs');
// etc.

披露:我写了better-require

A more versatile solution would be to use better-require.

npm install better-require

It lets you require() CoffeeScript files, no pre-compilation needed. (It also lets you require() a bunch of other file formats: CoffeeScript, clojurescript, yaml, xml, etc.)

In the case of CoffeeScript, it simply requires the coffee-script module.

require('better-require')();
var myModule = require('./mymodule.coffee');
var clojurescriptModule = require('./mymodule.cljs');
// etc.

Disclosure: I wrote better-require.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文