3

我希望我的文件/目录结构在我的网站上是干净的。所以我不希望 coffescript 文件与其编译版本位于同一文件夹中。

在开发时,我正在使用编译器的 --watch 键。我以前用过这个命令

coffee -cw ./ ./

当从网站的根目录启动它时,它对所有的咖啡脚本文件递归地工作得很好。但是有一个问题 -它将编译的文件放在同一个文件夹中,我尽量避免。

是否可以对编译说 - “请编译每个咖啡脚本文件并将编译后的版本放在父文件夹中”?

更新:

好的。这里稍微澄清一下。即我有这个文件夹结构

app
  |- css
  |- images
  |- js
      |- coffee
      |- libs
      |- controllers
               |- coffee
      |- services
               |- coffee
               |- loggers
                      |- coffee

如您所料,我想将所有咖啡脚本文件存储在coffee文件夹中,但将它们编译到父文件夹中。例如,我想再添加一个记录器,然后newLogger.coffeeapp/js/services/loggers/coffee中添加,编译器对其进行编译并放入newLogger.jsapp /js/services/loggers中。

我可以在每个coffee文件夹中使用这个命令

 coffee -cw -o ../ ./

因此,在这种有 4 个coffee文件夹的情况下,我为每个文件夹运行了 4 个编译器实例。我可以用一个实例替换它们吗?

4

5 回答 5

4

来自咖啡脚本文档:

将 src 中的 .coffee 文件的目录树编译成 lib 中的 .js 文件的并行树:

coffee --compile --output lib/ src/
于 2013-06-06T04:18:45.907 回答
3

您可以使用gruntjs任务管理器来完成。使用 grunt,您可以指定要维护的任何文件夹结构。

您还可以添加任务以在编译后对所有 js 文件进行 uglify

Grunt 对于开发非常有用,因为它可以监视您的源文件并在每次更改后重新编译它们。

我们现在在我们的项目中使用它来管理我们的前端。我们的任务包括:

  • 和文件.coffee的编译。.jade.less
  • 结果.js.css文件的连接。
  • 级联文件的缩小和丑化。
  • 部署到 Amazon S3。

这是gruntfile.coffee编译、连接丑化和部署目录中所有.coffee文件的示例assets/js/https ://gist.github.com/lbeschastny/5716323 (尚未测试)。

您可以在grunt 站点的入门部分找到更多示例以及如何运行它们的详细说明

于 2013-06-05T19:04:25.573 回答
1

看到这个链接 http://coffeescript.org/#usage

它说 -o, --output [DIR] 将所有已编译的 JavaScript 文件写入指定目录。与 --compile 或 --watch 结合使用。

希望能帮助到你。:)

于 2013-06-04T12:32:55.987 回答
0

因此,在这种有 4 个咖啡文件夹的情况下,我为每个文件夹运行了 4 个编译器实例。我可以用一个实例替换它们吗?

不,Coffee 编译器只支持更改源目录路径前缀生成输出路径;它不支持为其添加后缀../

coffee命令行实用程序是用 Coffescript 编写的,源代码有很好的文档记录,因此您可以自己修改它以添加您想要的选项。最简单的方法是简单地更改--output选项的含义。(尽管那样你将无法与世界分享这些变化,这将是一种耻辱。)我认为你需要做的就是改变:

  dir       = if opts.output then path.join opts.output, baseDir else srcDir

至:

  dir       = if opts.output then path.join baseDir, opts.output else srcDir

outputPath()函数中:command.coffee line 261

于 2013-06-02T19:52:44.270 回答
0

你需要完成单独的coffeescripts文件夹结构和编译文件夹结构。

app
  |- css  
  |- images
  |- js
      |- libs
      |- controllers
      |- services
               |- loggers

这一个将包含所有咖啡脚本。

app-src
  |- js
      |- controllers
      |- services
               |- loggers

然后在 app 和 app-src 的根目录下编译coffee -cw app app-src

于 2013-05-11T10:21:40.493 回答