首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Shake FilePatterns来缩小JS和CSS文件?

如何使用Shake FilePatterns来缩小JS和CSS文件?
EN

Stack Overflow用户
提问于 2014-03-29 10:44:06
回答 2查看 248关注 0票数 3

.js.css文件小型化的常见做法是创建.min.js.min.css文件。问题是摇动 FilePatterns将使用类似于//*.js的模式将缩小的和非缩小的文件与此方案相匹配。文档似乎建议为reg.jsmin.js等每一个都做唯一的扩展,但我不确定这是我想要走的一条路。这怎么能在沙克工作呢?

编辑:问题在于使用getDirectoryFiles

代码语言:javascript
运行
AI代码解释
复制
js <- getDirectoryFiles "" ["//*.js"]
let jsMins = map (-<.> "min" <.> "js") js
need jsMins

"//*.min.js有一个可以正常工作的目标,但是getDirectoryFiles "" ["//*.js"]开始收集生成的.min.js文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-30 10:53:56

我可以想到两种不同的方法:

getDirectoryContents 后处理

调用getDirectoryContents,然后筛选出您不关心的值。类似于:

代码语言:javascript
运行
AI代码解释
复制
xs <- getDirectoryFiles "" ["//*.js"]
need [x -<.> "min.js" | x <- xs, takeExtensions x == ".js"]

如果您在规则之外运行此代码,例如在action中,那么它是100%正确的。如果您在规则中运行代码,则该规则将运行一次,新文件将出现,然后该规则将再次运行(这也是林特违规行为,而不是重大的构建hygine)。我怀疑您超出了一条规则,所以这种方法可能是一个很好的方法。

编写Oracle

如果您在规则中,您可以定义一个类似于getDirectoryFiles的Oracle,但可以跳过min文件。

代码语言:javascript
运行
AI代码解释
复制
newtype JsFiles = JsFiles () deriving (Show,Typeable,Eq,Hashable,Binary,NFData)
addOracle $ \(JsFiles _) -> fmap (\x -> takeExtensions x == ".js") $ getDirectoryFiles "" ["//*.js"]

现在,您可以在您的规则中使用askOracle $ JsFiles (),并且只有在添加了新的非min文件时,它才会改变。

票数 2
EN

Stack Overflow用户

发布于 2014-03-29 11:41:12

有几种方法可以为.js.min.js编写不同的生成规则

  1. 如果您从未生成.js.css文件,只使用现有源文件,因此不需要//*.js规则,那么只需将最小化模式改为//*.min.js即可。
  2. 如果要生成.js (例如从CoffeeScript文件生成),那么如果要在不同目录中生成.min.js.js文件,则可以在该级别上区分模式,例如dist/*.min.jsdecafinate/*.js
  3. 例如,使用?>模式: (\x -> takeExtensions x == ".js") ?> \out -> ... 请注意,takeExtensions (带有尾随的s)只匹配扩展名为.js的文件,因此不匹配myfile/test.min.js

如果解决方案1有效,请使用它(这是最简单的)。如果解决方案2自然出现(例如,这与您想要做的事情相匹配),那么拥有更多限制性模式会更容易,但是选项3“只起作用”--所以我可能会这样做。

请注意,p *> a被定义为(p ?==) ?> a (加上许多额外的管道以获得良好的错误消息!),因此?>没有什么特别之处,并且可以很好地处理现有规则。我通常发现大约5-10%的规则使用?>模式。

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

https://stackoverflow.com/questions/22735289

复制
相关文章

相似问题

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