【问题标题】:Angular CLI removing prefixed CSSAngular CLI 删除前缀 CSS
【发布时间】:2018-03-18 11:07:11
【问题描述】:

我正在使用@angular/cli@1.4.3

在构建之前,我使用 gulp-postcss 为我的 CSS 自动添加前缀。这是一种享受。这是它创建的 CSS 示例(为了便于阅读,未缩小):

form.registration-form {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

完美!但是当 CLI 构建应用程序时,创建的 CSS 如下所示:

form.registration-form {
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-align:center;
    -ms-flex-align:center;
    align-items:center;
    -webkit-box-flex:1;
    -ms-flex-positive:1;
    flex-grow:1;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap
}

请注意它的一半丢失了!? :/

我很困惑,如果有任何帮助,我将永远感激不尽!

干杯!

【问题讨论】:

    标签: angular flexbox webkit angular-cli postcss


    【解决方案1】:

    Angular cli 的 autoprefixer 使用 browserslist (https://github.com/ai/browserslist) 来确定您的 css 中需要哪些前缀。您可以将 browserslist 属性添加到您的 package.json 文件中,以便 browserslist 选择您想要支持的浏览器

    "browserslist": [
       "> 1%",
       "last 2 versions"
    ]
    

    或者你添加一个 .browserslistrc 文件到你目录的根目录

    ### Supported Browsers
    
    > 1%
    last 2 versions
    

    现在 autoprefixer 将选择您想要支持的浏览器并相应地添加前缀。这一切都在 Angular cli 文档 (https://github.com/angular/angular-cli/wiki/stories-autoprefixer) 中进行了概述

    简而言之,gulp-postcss 和 angular cli 支持不同范围的浏览器,这导致了不同的 css 前缀。

    【讨论】:

    • 对于其他研究这个问题的人来说,有了这些知识,我几乎可以在整个项目中完全消除对 gulp 的依赖。我知道 CLI 使用了 webpack,但不知道它被配置为像这样自动添加 CSS 前缀。永远的感激是你的 LLai
    猜你喜欢
    • 2017-04-03
    • 2020-06-10
    • 2021-07-08
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多