大佬教程收集整理的这篇文章主要介绍了gruntjs – 在Yeoman的Angular项目中使用Font Awesome SCSS的正确方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
bower install fontawesome --save
然后它自动添加到我的app / index.html以下代码:
<!-- build:css(.) styles/vendor.css --> <!-- bower:css --> <link rel="stylesheet" href="bower_components/fontawesome/css/font-awesome.css" /> <!-- endbower --> <!-- endbuild -->
但我不想将它用作CSS,而是用作SCSS导入(能够更改字体文件的URL).所以我从HTML页面删除了上面的代码,并在app / styles / main.scss中添加了正确的代码:
$icon-font-path: "../bower_components/bootstrap-sass-official/assets/fonts/bootstrap/"; $fa-font-path: "../bower_components/fontawesome/fonts/"; // <==== here // bower:scss @import "bootstrap-sass-official/assets/stylesheets/_bootstrap.scss"; @import "fontawesome/scss/font-awesome.scss"; // <==== and here // endbower
然后我运行grunt build,但有些东西(Grunt?)将我的文件编辑回原始文件. index.html获得了< link>再次和我的main.scss只保留Bootstrap导入.
好的,我们快到了.
所以我查看了Bootstrap的bower.json,并与Font Awesome的bower.json进行了比较,我发现了以下不同之处:
// Bootstrap "main": [ "assets/stylesheets/_bootstrap.scss",// it's SCSS ... ],// Font Awesome "main": [ "./css/font-awesome.css",// it's CSS ... ],
然后我找到了一种方法来正确(不确定)使用我的应用程序的bower.json覆盖Font Awesome的凉亭配置,并将以下代码添加到其中
"overrides": { "fontawesome": { "main": [ "./scss/font-awesome.scss",// Now it's SCSS "./fonts/*" ] } }
问题:这是使用Font Awesome作为SCSS导入的正确方法,并避免在构建项目时更改文件的Grunt吗?通过覆盖其默认的“主要”属性?
首先,请注意SCSS!= CSS和浏览器不知道如何使用SCSs.包括< link rel =“stylesheet”href =“main.scss”>在HTML< head>中标签不起作用.我们可以在开发过程中享受SCSS的各种特权(例如变量,导入等),但是要在浏览器中使用这些样式,我们必须将SCSS转换为CSS(浏览器可以识别).
为了使开发人员的工作更轻松,种子项目(例如您正在使用的项目)通常包含某种自动构建过程,其中包括将SCSS转换为CSs.构建过程通常通过任务运行程序执行,例如Grunt或Gulp.这些种子项目/模板通常还包括一个任务,用于将项目的依赖项(在bower.json文件中声明)自动注入index.html.一个名为wiredep的工具用于读取您的bower.json文件以确定这些依赖关系,特别是,它将查找“main”属性以确定特定包所需的文件.然后它将注入适当的< script />和< link>标签.
为了进一步解释这一点,当你执行bower -install font-awe@L_718_36@me时 – 发生了一些事情:
>包下载并添加到您的项目中(通常是bower_components /).
>将一个条目添加到您的bower.json文件中,将该软件包添加到项目的依赖项中.
每个包都包含自己的bower.json文件,该文件描述了它的各种属性,其中最重要的(名称后)是main.你可以看到font-awesome bower.json文件here.正如你所看到的,它的主要属性引用了几个文件.这些是wiredep用于确定哪个< script />的文件.和< link>要注入index.html的标签.
通过在项目的bower.json中指定覆盖,如下所示:
"overrides": { "fontawesome": { "main": [ "./scss/font-awesome.scss",// Now it's SCSS "./fonts/*" ] } }
您指定了wiredep,即./scss/font-awesome.scss和./fonts/*是项目所需的文件,并忽略font-awesome bower.json文件中列出的文件.
关于SCSS:看看Sass guide,特别是关于进口的部分. Sass @import允许您将样式分割为几个较小的SCSS文件(部分),这些文件在转换后被组合并包含在单个(可选缩小的)CSS文件中.这包括您导入main.scss的任何第三方SCSS文件.例如,如果您将font-awesome.scss导入main.scss文件,然后将其转换为CSS,则生成的CSS文件将包含font-awesome.scss中包含的所有样式.
>在我自己的@L_52_65@main.scss文件中指定导入.>对我想要的变量进行任何自定义.>将main.scss透明化为CSs.>包括< link>标记到index.html文件中已转换的CSS文件.
以上是大佬教程为你收集整理的gruntjs – 在Yeoman的Angular项目中使用Font Awesome SCSS的正确方法全部内容,希望文章能够帮你解决gruntjs – 在Yeoman的Angular项目中使用Font Awesome SCSS的正确方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。