将 JS 和 CSS 合并到一个文件中

Posted

技术标签:

【中文标题】将 JS 和 CSS 合并到一个文件中【英文标题】:Combine JS and CSS to one file 【发布时间】:2017-10-10 23:39:52 【问题描述】:

我有一个 sample.min.js 和 sample.min.css 文件。我只想要一个包含所有 JS 和 CSS 内容的文件 sample.min.js。我正在使用 grunt,我不确定是否有插件可以做到这一点。

任何帮助或建议都会很棒。

【问题讨论】:

坏主意,它们是 2 种不同的语言,并且被分别调用。一个通过<link>,另一个通过<script>。如果你想减少 http 请求,你可以将你的 css 直接放到页面的 <style> 块中 你为什么要这样做?两个文件已经很不错了。 大声笑,也许在你的 js 文件中将 css 作为字符串,然后动态创建一个 @DmitryNarkevich 有趣的想法。不过我还是会说这是不好的做法。 您可以在开发文件中将 css 和 js 组合在一起,并使用 grunt 将它们编译成浏览器可以读取的单独的 .css 和 .js 文件——例如 vue 组件会这样做——但是你不能以相反的方式合理地做到这一点。 【参考方案1】:

您可以创建一个 html 文件并将所有 JS 放在 <script> 标记中,并将所有 CSS 放在 <style> 标记中。但这将是一个非常愚蠢的想法,并且会使可读性几乎不可能。

【讨论】:

【参考方案2】:

我建议不要这样做。虽然您可以将您的 CSS 转换为等效的 javascript,但它会比原生 CSS 慢得多。

您必须拥有 2 个文件这一事实没关系,但只要您将所有 CSS 合并到一个文件中并将所有 JS 合并到另一个文件中,当它出现时,您仍然在做正确的事情加载优化。

此外,将这 2 个文件合并为一个实际上会损害性能。这是因为浏览器一次可以同时下载多个文件。但是,如果将它们合并到一个文件中,浏览器就没有机会利用这一点。

【讨论】:

以上是关于将 JS 和 CSS 合并到一个文件中的主要内容,如果未能解决你的问题,请参考以下文章

将主题中的 CSS 和 JS 文件合并到 Angular8 项目中的完美正确方法是啥

合并和缩小多个 CSS / JS 文件

如何使用 webpack 将 html、js 和 css 捆绑在一个 html 文件中? [关闭]

html,js,css合并到vue项目中

页面加载速度优化

什么时候应该合并我的 JS 和 CSS 文件?