angularjs - fontawesome - install font awesome angular 6
Fontawesome no funciona cuando el proyecto se construye con gruñido (15)
Aquí está la solución: https://stackoverflow.com/a/32128931/3172813
{
expand: true,
cwd: ''<%= yeoman.app %>/bower_components/font-awesome'',
src: ''fonts/*'',
dest: ''<%= yeoman.dist %>''
}
Estoy usando la fuente de la biblioteca de fuentes impresionante. Funciona cuando el proyecto no se construye / uglified con gruñido.
Pero cuando estoy construyendo el proyecto con ronco, no funciona. Me sale este error en la consola: ... / fonts / fontawesome-webfont.woff? V = 4.0.3 404 (No encontrado)
He scaffolded el proyecto con yeoman.
Esta es mi referencia en index.html
<!-- build:css styles/fontawesome.css -->
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
<!-- endbuild -->
¿Alguna idea de lo que puede estar mal?
Actualización Necesito copiar la carpeta / bower_components / font-awesome / fonts a dist / fonts. Esto debe hacerse en el archivo grunt. Probablemente bajo las opciones de "copia"
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: ''<%= yeoman.app %>'',
dest: ''<%= yeoman.dist %>'',
src: [
''*.{ico,png,txt}'',
''.htaccess'',
''bower_components/**/*'',
''images/{,*/}*.{gif,webp}'',
''styles/fonts/*''
]
}, {
expand: true,
cwd: ''.tmp/images'',
dest: ''<%= yeoman.dist %>/images'',
src: [
''generated/*''
]
}]
},
Pero no estoy seguro de dónde incluir esto.
Como respondí anteriormente, este me funcionó muy bien también
// Copies remaining files to places other tasks can use
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: ''<%= yeoman.app %>'',
dest: ''<%= yeoman.dist %>'',
src: [
''*.{ico,png,txt}'',
''.htaccess'',
''*.html'',
''scripts/components/{,*/}*.html'',
''images/{,*/}*.{webp,png,jpg,jpeg,gif}'',
''fonts/*'',
''styles/fonts/{,*/}*.*'',
''services/{,*/}*.json'',
''services/mocks/{,*/}*.json''
]
}, {
expand: true,
cwd: ''.tmp/images'',
dest: ''<%= yeoman.dist %>/images'',
src: [''generated/*'']
}, {
expand: true,
cwd: ''.tmp/concat/scripts'',
dest: ''<%= yeoman.dist %>/scripts'',
src: ''{,*/}*.js''
}, {
expand: true,
cwd: ''.tmp/concat/styles'',
dest: ''<%= yeoman.dist %>/styles'',
src: ''{,*/}*.css''
}, {
expand: true,
cwd: ''<%= yeoman.app %>'',
src: ''styles/Bootstrap/fonts/bootstrap/*'',
dest: ''<%= yeoman.dist %>''
}, {
expand: true,
cwd: ''bower_components/font-awesome/fonts/'',
src: [''*.*''],
dest: ''<%= yeoman.dist %>/fonts''
}]
}
Estaba teniendo el mismo problema. Eché un vistazo al archivo bower.json para font-awesome y encontré esto:
{
"name": "font-awesome",
"description": "Font Awesome",
"keywords": [],
"homepage": "http://fontawesome.io",
"dependencies": {},
"devDependencies": {},
"license": ["OFL-1.1", "MIT", "CC-BY-3.0"],
"main": [
"less/font-awesome.less",
"scss/font-awesome.scss"
],
"ignore": [
"*/.*",
"*.json",
"src",
"*.yml",
"Gemfile",
"Gemfile.lock",
"*.md"
]
}
No se hizo referencia a "font-awesome.css" en la matriz "principal". Tal vez, como yo, no estés usando SASS o LESS para diseñar. Así que no se están agregando estilos para font-awesome. Modifiqué el archivo json de la siguiente manera:
{
"name": "font-awesome",
"description": "Font Awesome",
"keywords": [],
"homepage": "http://fontawesome.io",
"dependencies": {},
"devDependencies": {},
"license": ["OFL-1.1", "MIT", "CC-BY-3.0"],
"main": [
"less/font-awesome.less",
"scss/font-awesome.scss",
"css/font-awesome.css",
"fonts/fontawesome-webfont.tff",
"fonts/fontawesome-webfont.woff",
"fonts/fontawesome-webfont.woff2"
],
"ignore": [
"*/.*",
"*.json",
"src",
"*.yml",
"Gemfile",
"Gemfile.lock",
"*.md"
]
}
Guardé y ejecuté el servicio de ronco, y ahora aparecen mis íconos geniales.
Espero que esto ayude.
He editado mi Gruntfile.js de la siguiente manera:
//...
copy: {
dist: {
files: [//... {
expand: true,
dot: true,
cwd: ''bower_components/font-awesome/fonts/'',
src: [''*.*''],
dest: ''<%= yeoman.dist %>/fonts''
}]
},
app: {
files: [{
expand: true,
dot: true,
cwd: ''bower_components/font-awesome/fonts/'',
src: [''*.*''],
dest: ''<%= yeoman.app %>/fonts''
}]
}, //...
}
//...
grunt.registerTask(''serve'', ''Compile then start a connect web server'', function (target) {
if (target === ''dist'') {
return grunt.task.run([''build'', ''connect:dist:keepalive'']);
}
grunt.task.run([
''clean:server'',
''wiredep'',
''copy:app'', // Added this line
''concurrent:server'',
''autoprefixer:server'',
''connect:livereload'',
''watch''
]);
});
Estoy usando yeoman 1.4.7 y su generador angular. Es muy importante agregar copy: app y no solo copy: dist task (como se sugirió anteriormente). Si no incluye copy: app cuando ingresa a grunt serve
, no funcionará. Con copy: dist solo estás considerando grunt serve:dist
Hola, el problema principal es que los archivos de fuente requeridos por font-awesome css no se copian luego de ejecutar la tarea gruñona y es posible que obtengas un error 404 no encontrado; el mismo se puede verificar si abres el modo desarrollador de Chrome y observas el consola o pestaña de redes. El mismo problema puede ocurrir para bootstrap también.
Por lo tanto, necesitamos modificar la tarea de grunt para que todos los archivos de fuente se copien.
Agregue una tarea de copia separada para los archivos de fuentes.
copy: {
dist: { .....
},
fonts: {
expand: true,
flatten: true,
cwd: ''.'',
src: [''bower_components/bootstrap/fonts/*'', ''bower_components/font-awesome/fonts/*''],
dest: ''<%= yeoman.dist %>/fonts'',
filter: ''isFile''
},
styles: { .......
}
}
Registre la tarea ''copy: fonts'' en grunt.registerTask para que se ejecute en el tiempo de compilación.
La forma más sencilla de hacerlo es ir a su propio bower.json
y agregar una propiedad de overrides
.
{
"name": "xxx",
"version": "x.x.x",
"dependencies": {
...,
"fontawesome": "~4.0.3"
},
"devDependencies": {
...,
},
"overrides": {
"fontawesome": {
"main": [
"./css/font-awesome.css"
]
}
}
}
Deberá copiar las fuentes de la carpeta fontawesome/fonts
su carpeta de app/fonts
manualmente. No se Gruntfile
edición de Gruntfile
o SCSS
ni nada más.
Mi solución fue ir con un enfoque CDN:
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
Ninguna de las respuestas funcionó por alguna razón.
No sé lo que estaba haciendo mal, pero ninguna de las soluciones propuestas funcionó para mí. Cualquier cosa que intenté, la versión de producción (distribución) no mostraba los íconos.
Terminé usando los siguientes componentes: https://github.com/philya/font-awesome-polymer-icons-generator y https://github.com/philya/font-awesome-polymer-icons
font-awesome-polymer-icons-generator
Nota: python necesitaba
Le permite generar un icono de SVG tipo fuente increíble para los iconos (que tiene en uso) en su proyecto.
Como ejemplo, digamos que quiero el code, line-chart, github-alt
los iconos code, line-chart, github-alt
en mis proyectos, y luego los generaría así:
./makefaicons.py myappname code line-chart github-alt
Esto genera el archivo build/myappname-icons.html
. Este archivo necesita ser importado en mi componente como cualquier otro componente:
<link rel="import" href="<pathToFile>/myappname-icons.html">
entonces puedo obtener los íconos geniales de la fuente así:
<core-icon icon="myappname:line-chart"></core-icon>
es decir, prefijo el nombre normal de fuente impresionante con el nombre que di cuando creé el conjunto de iconos.
font-awesome-polymer-icons
También puede importar el conjunto completo pre-construido de íconos increíbles de fuentes:
bower install font-awesome-polymer-icons
Tenga en cuenta que esto agrega 300 + KB a su tamaño de distribución y el autor señala que no se recomienda para uso en producción.
Para aquellos que usan Google App Engine
, lo siguiente funcionó para mí:
Agregar a Gruntfile.js
:
copy: {
build_font_awesome: {
files: [
{
expand: true,
flatten: true,
src: ''vendor/components-font-awesome/fonts/*'',
dest: ''<%= build_dir %>/fonts''
}
]
},
compile_font_awesome: {
files: [
{
expand: true,
flatten: true,
src: ''vendor/components-font-awesome/fonts/*'',
dest: ''<%= compile_dir %>/fonts''
}
]
}
}
Estoy usando LESS, así que importé font-awesome.less
al agregar esto a mi archivo main.less
.
@import ''../../vendor/components-font-awesome/less/font-awesome.less'';
Luego agregué esto a mi archivo app.yaml
.
handlers:
- url: /fonts
static_dir: static/fonts
Pude solucionar el problema añadiendo lo siguiente a copy.dist.files:
{
expand: true,
flatten: true,
src: ''bower_components/components-font-awesome/fonts/*'',
dest: ''dist/fonts''
}
Si está trabajando con SailsJS y Bower, he creado una solución que soluciona los problemas con las fuentes Fontawesome y Bootstrap.
- Asegúrese de que sus
tasks/config/bower.js
aspecto similar a: https://gist.github.com/robksawyer/fc274120aef9db278eec - Se agregó el módulo npm grunt-remove .
- Crear el archivo
remove.js
entasks/config
: https://gist.github.com/robksawyer/2fcf036fdf02436aa90b - Actualizar las
tasks/register/compileAssets
archivotasks/register/compileAssets
: https://gist.github.com/robksawyer/fa04a34ea103bead1c61 - Actualice el archivo
tasks/config/copy.js
a: https://gist.github.com/robksawyer/2aac6d0cdb73bfa8239f
Si está utilizando SASS en su proyecto, encontré una manera más directa que no implica cambiar el archivo grunt si alguien está interesado:
http://likesalmon.net/use-font-awesome-on-yeoman-angularjs-projects/
Básicamente incluya estas 2 líneas en la parte superior de su archivo main.scss y las fuentes deberían funcionar.
$fa-font-path: "/bower_components/font-awesome/fonts/";
@import "font-awesome/scss/font-awesome";
Si está utilizando la pila de tareas de grunt completa de yeoman, la tarea useminPrepare
construye una hoja de estilos combinada de todas las hojas de estilo que coloca en la build:css
comment, como usted. (Consulte https://github.com/yeoman/grunt-usemin
para obtener información adicional). Una vez que finaliza el proceso de compilación, este archivo, algo así como "vendor.234243.css", se copia en la carpeta de estilos. Es por eso que la ruta de su fuente ya no es válida. Hay al menos 2 posibilidades para resolver esto:
Podrías eliminar el font-awesom css de la
build:css
block:<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css"> <!-- build:css styles/fontawesome.css --> this will be processed by useminPrepare <!-- endbuild -->
Copie la
folder
fuentes como un hermano a la carpeta destyles
mediante una tarea de grunt adicional en su gruntfile.
Yo tuve el mismo problema. El siguiente código resolvió mi problema.
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: ''<%= config.app %>'',
dest: ''<%= config.dist %>'',
src: [
''*.{ico,png,txt}'',
''.htaccess'',
''images/{,*/}*.webp'',
''{,*/}*.html'',
''styles/fonts/{,*/}*.*''
]
},{
expand: true,
dot: true,
cwd: ''bower_components/bootstrap/dist'', // change this for font-awesome
src: [''fonts/*.*''],
dest: ''<%= config.dist %>''
}]
}
}
esto copiará las fuentes donde las necesite.
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: ''<%= yeoman.app %>'',
dest: ''<%= yeoman.dist %>'',
src: [
''*.{ico,png,txt}'',
''.htaccess'',
''images/{,*/}*.webp'',
''{,*/}*.html'',
''styles/fonts/{,*/}*.*''
]
}, {
expand: true,
dot: true,
cwd: ''app/bower_components/fontawesome/fonts/'',
src: [''*.*''],
dest: ''<%= yeoman.dist %>/fonts''
}]
},