什么是缩小JS& amp;将NodeJS应用程序上传到Heroku时的CSS

时间:2014-03-14 14:28:31

标签: javascript node.js heroku minify

我习惯使用Rails,我真的很喜欢资产管道。 CSS&当您上传应用程序时,JS会自动缩小并自动捆绑。

在NodeJS中有类似内容的最佳方法是什么,或者部署过程是否与我在Rails中习惯的有点不同?

3 个答案:

答案 0 :(得分:4)

您可以使用grunt.js作为您运行的任务运行器来处理您想要进行的所有缩小/预处理。

对于缩小js,您可以使用https://github.com/gruntjs/grunt-contrib-uglify

要缩小css,您可以使用https://github.com/gruntjs/grunt-contrib-cssmin

答案 1 :(得分:2)

简单的正则表达式CSS缩小器/压缩器

PS:我讨厌在不需要的地方使用不同的框架和库。 因此,我想提出一种最简单的方法,允许缩小和简化CSS。

功能

  • 删除所有评论
  • 删除所有空声明
  • 删除所有不必要的空格 (包括元字符周围,例如 {}():;>〜+ 等。)
  • 删除最后一个" ; "在规则声明中
  • 删除浮点值中的前导零。例如: 0.5 >的 0.5
  • 尽可能将 HEX颜色转换为短值。例如: #CCCCCC >的 #CCC
  • 删除不必要的所有零值单位(例如%,px,pt,pc,rem,em,ex,cm,mm,in)(CSS关键帧除外)。例如: border:1px 0px > border:1px 0

代码

function minifyCSS (css) {
    return String(css)
        .replace(/\/\*[\s\S]*?\*\//g, ' ') // Comments
        .replace(/\s+/g, ' ') // Extra spaces
        .replace(/([\(\)\{\}\:\;\,]) /g, '$1') // Extra spaces
        .replace(/ \{/g, '{') // Extra spaces
        .replace(/\;\}/g, '}') // Last semicolon
        .replace(/ ([+~>]) /g, '$1') // Extra spaces
        .replace(/([^{][,: \(\)]0)(%|px|pt|pc|rem|em|ex|cm|mm|in)([, };\(\)])/g, '$1$3') // Units for zero values
        .replace(/([: ,=\-\(])0\.(\d)/g, '$1.$2') // Lead zero for float values
        .replace(/([^\}]*\{\s*?\})/g, '') // Empty rules
        .replace(/([,: \(])#([0-9a-f]{6})/gi, function(m, pfx, clr) { // HEX code reducing
            if (clr[0] == clr[1] && clr[2] == clr[3] && clr[4] == clr[5]) return pfx + '#' + clr[0] + clr[2] + clr[4];
            return pfx + '#' + clr;
        });
 }

答案 2 :(得分:0)

部署过程会有所不同,但javascript有很多缩小器。我建议使用connect,然后你可以使用这个方便的人:

https://github.com/mape/connect-assetmanager