我希望我的文件/文件结构在我的网站上清洁。所以我不希望coffescript文件与其编译版本在同一文件夹中。
开发时我正在使用 - 编译器的watch键。我在
之前使用过这个命令coffee -cw ./ ./
从网站的根目录启动时,所有coffeescript文件的递归工作都很好。但是有一个问题 - 它将编译后的文件放在同一个文件夹中,我试图避免这种情况。
是否可以对编译说 - “请编译每个coffeescript文件并将编译后的版本放在父文件夹中”?
更新
行。这里有一点澄清。即我有这个文件夹结构
app
|- css
|- images
|- js
|- coffee
|- libs
|- controllers
|- coffee
|- services
|- coffee
|- loggers
|- coffee
您可以猜到我想将所有coffeescript文件存储在coffee
文件夹中,但将它们编译到父文件夹中。例如。我想再添加一个记录器,然后在 app / js / services / loggers / coffee 中添加newLogger.coffee
,编译器将其编译并将newLogger.js
放入 app / JS /服务/记录器
我可以在每个coffee
文件夹
coffee -cw -o ../ ./
因此,在这种情况下有4个coffee
文件夹,我为每个文件夹运行了4个编译器实例。我可以用一个实例替换它们吗?
答案 0 :(得分:4)
来自coffeescript docs:
将src中.coffee文件的目录树编译为并行树 lib中的.js文件:
coffee --compile --output lib/ src/
答案 1 :(得分:3)
您可以使用gruntjs任务管理器执行此操作。使用grunt,您可以指定要维护的任何文件夹结构。
您还可以在编译后将任务添加到uglify所有js文件中。
Grunt对于开发非常有用,因为它可以监视源文件并在每次更改后重新编译它们。
我们现在正在项目中使用它来管理我们的前端。我们的任务包括:
.coffee
,.jade
和.less
个文件。.js
和.css
文件的连接。以下是gruntfile.coffee
的示例,它编译,连接uglifies并部署.coffee
目录中的所有assets/js/
文件:https://gist.github.com/lbeschastny/5716323(尚未测试)。
答案 2 :(得分:1)
看到这个链接 http://coffeescript.org/#usage
它说-o, - output [DIR]将所有已编译的JavaScript文件写出到指定的目录中。与--compile或--watch一起使用。
希望它有所帮助。 :)答案 3 :(得分:0)
您需要完成单独的coffeescripts文件夹结构和编译的文件夹结构。
app
|- css
|- images
|- js
|- libs
|- controllers
|- services
|- loggers
这个将包含所有咖啡脚本。
app-src
|- js
|- controllers
|- services
|- loggers
然后在app和app-src coffee -cw app app-src
的根文件夹中编译。
答案 4 :(得分:0)
所以,在这种情况下有4个咖啡文件夹,我有4个编译器实例 为他们每个人奔跑。我可以用一个实例替换它们吗?
没有。 Coffee编译器仅支持更改源的目录路径的前缀以生成输出路径;它不支持向其添加../
这样的后缀。
coffee
命令行实用程序是用Coffescript编写的,源代码是very well documented,因此您可以自己修改它以添加所需的选项。最简单的方法是简单地改变--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