Less “harp compile”在使用bower时显示字体错误

Less “harp compile”在使用bower时显示字体错误,less,font-awesome,bower,harp,Less,Font Awesome,Bower,Harp,我正在开发一个使用FontAwesome和HarpJS的项目。我只是使用了预编译的CSS版本的font awesome,但由于我使用的是bower,它下载到我的components文件夹的文件更少 问题是,当我需要使用harp compile将资产编译到dist文件夹时,会出现以下错误: { "source": "Less", "dest": "CSS", "filename": "/Users/***/lib/fontawesome/less/bordered-pulled.les

我正在开发一个使用FontAwesome和HarpJS的项目。我只是使用了预编译的CSS版本的font awesome,但由于我使用的是bower,它下载到我的components文件夹的文件更少

问题是,当我需要使用harp compile将资产编译到dist文件夹时,会出现以下错误:

{
  "source": "Less",
  "dest": "CSS",
  "filename": "/Users/***/lib/fontawesome/less/bordered-pulled.less",
  "lineno": 4,
  "name": "NameError",
  "message": "variable @fa-css-prefix is undefined",
  "stack": "// Bordered & Pulled\n// -------------------------\n\n.@{fa-css-prefix}-border {\n  padding: .2em .25em .15em;\n  border: solid .08em @fa-border-color;\n  border-radius: .1em;\n}\n\n.pull-right { float: right; }\n.pull-left { float: left; }\n\n.@{fa-css-prefix} {\n  &.pull-left { margin-right: .3em; }\n  &.pull-right { margin-left: .3em; }\n}\n"
}
发生此错误的原因是HarpJS试图编译font awesome的bower包附带的较少文件。经过一些研究,我找到了答案,这让我找到了一页字体很棒的文档,上面写着:

第页:

打开项目的字体awesome/less/variables.less或字体awesome/scss/_variables.scss,编辑@fa font path或$fa font path变量以指向字体目录

例如:

@fa-font-path:   "../font";
但是我不能编辑任何这样的文件,因为我的依赖项是使用bower安装的,并且我没有在repo中检查它们。即使我真的签入了它们,只要有人使用bower安装来获得更新版本的font awesome,这个更改就会被覆盖

在这种情况下,您会使用什么解决方法

提示:您只需执行以下操作即可复制此信息:

$ mkdir test
$ cd test
$ bower init
$ bower install --save font-awesome
$ harp compile . dist

我只是围绕这个问题做了一些研究,我相信解决这个问题最简单的方法是指定一个自定义的bower_组件目录

找到了一种可以做到这一点的方法:

在项目根目录中创建一个文件.bowerrc,其内容如下:

再次运行bower安装

Harp不会编译以下划线开头的目录/文件,因此如果您将目录命名为bower组件,它将成功忽略它

这种方法的问题是,这些文件不是公共文件,因此您可能必须创建一个新的公共文件,从font Aware导入这些文件

比如:

@import "_bower_components/font-awesome/css/font-awesome.css"
harp的问题中存在一个漏洞,他们试图找到一种方法来忽略类似于.gitignore的文件或目录,但它尚未实现

您可能仍然需要弄清楚如何处理字体文件。希望它能帮助你前进

@import "_bower_components/font-awesome/css/font-awesome.css"