按顺序连接/合并css文件

Abh*_*yal 3 css bash concatenation css3 npm

css/libsass的帮助下,我在文件夹中生成了一堆不同的css文件.此外,我确实normalize.css已经放在css/文件夹中,以允许在所有浏览器中规范化CSS.我使用npm作为构建工具,我的内容package.json如下:

{
.....
"scripts": {
    "test": "npm run lint",
    "lint": "csslint css/*.css",
    "build": "node-sass sass/ -o css/",
    "postbuild": "cat css/*.css | cleancss -o css/main.min.css"
  },
.....
}
Run Code Online (Sandbox Code Playgroud)


在构建步骤中,我正在生成css文件,在构建后的步骤中,我将所有css文件连接成一个缩小的css文件.

但是在构建后的步骤中,normalize.css文件的内容应该在任何其他css文件内容之前,但行为是不一致的.我需要确保规范化的东西比所有其他css文件提前,任何抬头都会有所帮助.


Tldr - 串联css文件的串联导致normalize.css被追加到中间或最后.我在连接的css文件的开头需要它.

谢谢.

Jer*_*ska 5

只需使用-I选项ls排除normalize.css被列出:

cd css/ && cat normalize.css `ls -I normalize.css -I main.min.css` | cleancss -o main.min.css
Run Code Online (Sandbox Code Playgroud)

  • `cat`按文件名的字母顺序显示文件吗? (2认同)
  • @AbhinavGauniyal不,`cat`使用其参数的顺序,所以这里首先是`normalize.css`,然后是`ls`的顺序,默认情况下是按字母顺序排列.(请参阅http://stackoverflow.com/questions/878249/unixs-ls-sort-by-name).但是,如果您注意到并非如此,只需使用`ls -I normalize.css*.css | sort` (2认同)
  • 好吧...`ls -I normalize.css*.css`甚至在终端中给出所有css文件,包括`normalize.css`,因此击败了整个目的.你能看一下吗? (2认同)
  • @EricRenouf是的,我已经意识到OP的评论,因此编辑. (2认同)