Node.js 如何在Express 4中缩小和压缩javascript和css文件

Node.js 如何在Express 4中缩小和压缩javascript和css文件,node.js,express,npm,pug,Node.js,Express,Npm,Pug,是否有一个中间件可以接收所有公共内容,如脚本、css、图像和字体。然后对它们进行无损压缩/缩小、压缩,用它们的调用替换模板中提到的内容。因此,脚本1、脚本2、脚本3标记(比如在jade中)被替换为all.concated.min.js,所有图像都被合并到sprite表中,进行无损压缩,然后所有在css或img标记中提及的图像都被替换为额外的css规则,这些规则也在all.concate.min.css的末尾被合并 我忘了补充一点,这个管理器也应该处理http缓存。因为它已经在服务器启动时替换文件

是否有一个中间件可以接收所有公共内容,如脚本、css、图像和字体。然后对它们进行无损压缩/缩小、压缩,用它们的调用替换模板中提到的内容。因此,脚本1、脚本2、脚本3标记(比如在jade中)被替换为all.concated.min.js,所有图像都被合并到sprite表中,进行无损压缩,然后所有在css或img标记中提及的图像都被替换为额外的css规则,这些规则也在all.concate.min.css的末尾被合并


我忘了补充一点,这个管理器也应该处理http缓存。因为它已经在服务器启动时替换文件值。因此,它将使logo_s3kc.png最大年龄无限。但如果徽标发生变化,它会使用自己的内部方式(如使用校验和)跟踪。然后,它会在服务器的下一个开始更改名称,以便所有文件都指向logo_new.png。但当我查看文件时,我只关心logo.png。就像你有自己的风格一样。然后是编译的styles.css等。

有一个庞大的工具生态系统来处理这个问题。请在npmjs.com上搜索。在运行时做这样的事情是疯狂的,所以我认为这样的中间件不存在。尽管如此,node.js有很多构建工具,它们的设计与您提到的完全相同。不,我希望这种情况在服务器启动时发生一次。通常,这将与启动服务器分开进行。您当然可以有一个同时执行这两项功能的脚本,但不需要将它直接绑定到启动服务器。这很公平,但在启动服务器之前再运行一个脚本是可以的。但是怎么做呢