gpt4 book ai didi

coffeescript - 使用 CoffeeScript/Cake 合并和缩小模板

转载 作者:行者123 更新时间:2023-12-05 09:25:11 25 4
gpt4 key购买 nike

我有一个 src/templates/ 目录,里面全是 mustache 模板。我如何组合和缩小这些内容,以便它们可用于我的 CoffeeScript 应用程序?

我已经按照 https://github.com/jashkenas/coffee-script/wiki/%5BHowTo%5D-Compiling-and-Setting-Up-Build-Tools 上的说明进行操作了用于将我的 CoffeeScript src 合并并缩小到 js 中。

最佳答案

首先,我假设您的模板正在导出到全局对象(例如,每个模板都执行 window.userpane = 而不仅仅是 userpane =)。这是最重要的事情。如果您这样做,并且成功连接和编译,那么唯一剩下的就是在每次连接后自动缩小。

简短的回答:目前还没有好的工具。你最好的选择是用像这样的一行来扩展你现有的 Cakefile

fs.watchFile 'concatenated.js', ->
exec 'uglifyjs concatenated.js'

(要安装 UglifyJS,运行 npm install uglify-js。)

现在,这不会解决确保您的脚本以合理的顺序连接的问题。 (例如,如果文件 A 中有 window.templates = {},文件 B 中有 templates.userpane =,那么在文件 A 之前连接文件 A 非常重要B.) 为此,你应该留意 Sprockets ,它可以让你在每个 JS 文件的顶部指明它的依赖项是什么,然后按照尊重这些依赖项的顺序组合它们。 Sprockets 的创建者 Sam Stephenson 是 CoffeeScript 社区的活跃成员,并且在 Sprockets 2(repo here)中将对 Sprockets 中的 CoffeeScript 提供一流的支持。

更新:这是一个 Cake 任务,用于实际读取和连接 template 目录中的所有内容:

templateJs = ''
files = fs.readdirSync 'template'
for file in files
contents = fs.readFileSync file, 'utf8'
name = file.replace /\..*/, '' # remove extension
templateJs += "window.#{name} = '#{contents}';"

然后用 templateJs 为您的串联 JS 加上前缀。请注意,这假设模板中没有单引号 (')。要么在它们前面加上反斜杠,要么始终使用双引号。

关于coffeescript - 使用 CoffeeScript/Cake 合并和缩小模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com