Javascript 缩小JS&;的好方法是什么;将NodeJS应用程序上载到Heroku时的CSS

Javascript 缩小JS&;的好方法是什么;将NodeJS应用程序上载到Heroku时的CSS,javascript,node.js,heroku,minify,Javascript,Node.js,Heroku,Minify,我习惯于使用Rails,我非常喜欢资产管道。当你上传你的应用程序时,CSS和JS只是被缩小和自动捆绑 在NodeJS中实现类似功能的最佳方式是什么,或者部署过程是否应该与我在Rails中所习惯的有所不同?部署过程将有所不同,但javascript有很多小型化程序。我建议使用connect,然后您可以使用这个方便的家伙: 部署过程将有所不同,但javascript有很多小型化程序。我建议使用connect,然后您可以使用这个方便的家伙: 您可以将其用作任务运行程序,运行任务运行程序来处理所有要进行

我习惯于使用Rails,我非常喜欢资产管道。当你上传你的应用程序时,CSS和JS只是被缩小和自动捆绑


在NodeJS中实现类似功能的最佳方式是什么,或者部署过程是否应该与我在Rails中所习惯的有所不同?

部署过程将有所不同,但javascript有很多小型化程序。我建议使用connect,然后您可以使用这个方便的家伙:


部署过程将有所不同,但javascript有很多小型化程序。我建议使用connect,然后您可以使用这个方便的家伙:

您可以将其用作任务运行程序,运行任务运行程序来处理所有要进行的缩小/预处理

对于缩小js,您可以使用

要缩小css,您可以使用

您可以将其用作任务运行程序,运行该任务运行程序来处理所有要进行的缩小/预处理

对于缩小js,您可以使用

要缩小css,可以使用

简单的正则表达式css缩小器/压缩器 PS:我讨厌在不需要的地方使用不同的框架和库。 所以,我想提出我最简单的方法来缩小和简化CSS

特征
  • 删除所有评论
  • 删除所有空声明
  • 删除所有不必要的空白
    (包括元字符周围,如{}():;>~+等)
  • 删除规则声明中的最后一个“
  • 删除浮点值中的前导零。例如:0.5.5
  • 如果可能,将十六进制颜色转换为短值。例如:#中交#中交
  • 删除所有不必要的零值单位(例如%,px,pt,pc,rem,em,ex,cm,mm,in)(CSS关键帧除外)。例如:边框:1px 0px边框:1px 0
代码 简单正则表达式CSS缩微器/压缩器 PS:我讨厌在不需要的地方使用不同的框架和库。 所以,我想提出我最简单的方法来缩小和简化CSS

特征
  • 删除所有评论
  • 删除所有空声明
  • 删除所有不必要的空白
    (包括元字符周围,如{}():;>~+等)
  • 删除规则声明中的最后一个“
  • 删除浮点值中的前导零。例如:0.5.5
  • 如果可能,将十六进制颜色转换为短值。例如:#中交#中交
  • 删除所有不必要的零值单位(例如%,px,pt,pc,rem,em,ex,cm,mm,in)(CSS关键帧除外)。例如:边框:1px 0px边框:1px 0
代码
你可以使用一个。你可以使用一个。相当漂亮的工具,但我一直认为使用你的应用服务器来提供文件是“糟糕”的做法。让像
nginx
apache
这样久经考验的静态服务器来完成所有繁重的工作,它们也有许多有用的特性。这将适用于任何语言的任何应用程序,但在单线程环境中,这将更为重要。通常,您只需在其前面使用CDN,这样就不会有太大问题。这是一个非常漂亮的工具,但我一直认为,使用应用程序服务器提供文件是“糟糕”的做法。让像
nginx
apache
这样久经考验的静态服务器来完成所有繁重的工作,它们也有许多有用的特性。这将适用于任何语言的任何应用程序,但在单线程环境中,这将更加重要。通常,您只需在它前面使用CDN,这样就不会有太大问题。
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;
        });
 }