Css 单个 function/go 中多个文件的自动前缀?

Css Autoprefixer for multiple files in single function/go ?

我的 Angular2 项目有 100 多个 Css 文件,这些文件没有任何前缀,例如 :Mozila、:Chrome 等,我需要一些工具或任何 gulp任务或任何将我的所有 css 文件转换为具有前缀的文件的东西。

我试过了

https://github.com/postcss/autoprefixer

但没有按照我的用例工作,

所以可能吗?如果是怎么办?

自从您要求答案以来:

在你的IDE中(我以Visual Studio代码为例):

  • Ctrl+Maj+F 将启动全局搜索(或在左侧工具栏上,单击放大镜)
  • 激活 "search by regex" 选项(由 .* 表示)
  • 输入您的正则表达式。它是这样的

    ^\s*([a-z-]*)\s*:\s*([\d\w-()"\s\.:=!@]*);?\s*$

  • 在第二个字段中,使用类似

    的内容

    moz-: ;\nsafari-: ;

它会将 "moz-" 添加到正则表达式找到的每个 属性。

当然我打得很快,所以你必须做一些调整,但思路就在这里。

聊天后编辑 这是解释:

  • 以^开头,表示"the line starts here"
  • 那么\s*表示"line starts with as much tabs or space you want"
  • ([a-z-]*) 表示 "find properties that contain a to z letters, and - characters"
  • \s* 同上,有些spaces
  • the : for the : 在每个 css 属性
  • 再次,\s*
  • ([\d\w-()"\s.:=!@]*) 表示 "find the property value that contains letters, numbers, spaces, and every special charachter listed (.:=!@)"
  • 然后我们用 ; 结束这一行(出现零次或一次)
  • 然后 space 用 \s*
  • 而$表示行尾(与开头的^相反)

回答它是如何可能的:当您在正则表达式中放入括号时,它 "captures" 它找到的内容并将其注册到以 $ 符号开头的变量中。这就是您在替换字符串中写入 $1、$2 的原因,因为它捕获了 属性 名称和 属性 值。 \n 允许一行 return,您所要做的就是像那样放置任意数量的前缀!

有一个名为 Autoprefixer 的 node.js 工具,它可以满足您的需要。 PostCSS autoprefixer 实际上只是它的包装器。可以直接使用。

如果您不使用 Gulp、Grunt 或其他一些任务运行器,您可以从命令行手动使用 Autoprefixer。

首先安装它:

npm install -g autoprefixer

然后在某个文件上使用它:

autoprefixer file.css

或在多个文件上:

autoprefixer -d processed *.css