ฉันได้ติดตั้งไอคอนฟอนต์ 4.0.3 ที่ยอดเยี่ยมโดยใช้npm install
.
หากฉันต้องการใช้จากโมดูลโหนดฉันจะใช้ในไฟล์ html ได้อย่างไร
หากฉันต้องการแก้ไขไฟล์ที่น้อยกว่าฉันจำเป็นต้องแก้ไขในโมดูลโหนดหรือไม่
ฉันได้ติดตั้งไอคอนฟอนต์ 4.0.3 ที่ยอดเยี่ยมโดยใช้npm install
.
หากฉันต้องการใช้จากโมดูลโหนดฉันจะใช้ในไฟล์ html ได้อย่างไร
หากฉันต้องการแก้ไขไฟล์ที่น้อยกว่าฉันจำเป็นต้องแก้ไขในโมดูลโหนดหรือไม่
คำตอบ:
ติดตั้งเป็น npm install font-awesome --save-dev
ในไฟล์การพัฒนาที่น้อยลงคุณสามารถนำเข้าแบบอักษรทั้งหมดที่น่ากลัวโดยใช้น้อยลง@import "node_modules/font-awesome/less/font-awesome.less"
หรือดูในไฟล์นั้นและนำเข้าเฉพาะส่วนประกอบที่คุณต้องการ ฉันคิดว่านี่เป็นขั้นต่ำสำหรับไอคอนพื้นฐาน:
/* adjust path as needed */
@fa_path: "../node_modules/font-awesome/less";
@import "@{fa_path}/variables.less";
@import "@{fa_path}/mixins.less";
@import "@{fa_path}/path.less";
@import "@{fa_path}/core.less";
@import "@{fa_path}/icons.less";
โปรดทราบว่าคุณจะยังไม่ประหยัดไบต์จำนวนมากโดยการทำเช่นนี้ ไม่ว่าจะด้วยวิธีใดคุณจะต้องรวม CSS ที่ไม่ได้รวมไว้ 2-3k บรรทัด
คุณจะต้องใช้ฟอนต์จากโฟลเดอร์ที่เรียก/fonts/
ในไดเรกทอรีสาธารณะของคุณด้วย คุณสามารถคัดลอกไปที่นั่นด้วยงานอึก ๆ ง่ายๆตัวอย่างเช่น:
gulp.task('fonts', function() {
return gulp.src('node_modules/font-awesome/fonts/*')
.pipe(gulp.dest('public/fonts'))
})
fa-font-path
ไปยังตำแหน่งที่คุณต้องการ
@fa-font-path: "/public/fonts";
คุณต้องกำหนดเส้นทางแบบอักษรที่เหมาะสม เช่น
$fa-font-path:"../node_modules/font-awesome/fonts";
@import "../node_modules/font-awesome/scss/font-awesome";
.icon-user {
@extend .fa;
@extend .fa-user;
}
../assets/font-awesome/fonts
ใช้ได้ผลสำหรับฉัน ขอบคุณ
ในไฟล์ style.css ของฉัน
/* You can add global styles to this file, and also import other style files */
@import url('../node_modules/font-awesome/css/font-awesome.min.css');
คุณจะต้องคัดลอกไฟล์เป็นส่วนหนึ่งของกระบวนการสร้างของคุณ ตัวอย่างเช่นคุณสามารถใช้npm postinstall
สคริปต์เพื่อคัดลอกไฟล์ไปยังไดเร็กทอรีที่ถูกต้อง:
"postinstall": "cp -R node_modules/font-awesome/fonts ./public/"
สำหรับเครื่องมือสร้างบางอย่างมีแพ็คเกจฟอนต์ที่ยอดเยี่ยมอยู่แล้ว ยกตัวอย่างเช่น webpack มีตัวอักษรที่น่ากลัว-webpackrequire('font-awesome-webpack')
ซึ่งช่วยให้คุณง่าย
การใช้ webpack และ scss:
ติดตั้ง font-awesome โดยใช้ npm (โดยใช้คำแนะนำการตั้งค่าบนhttps://fontawesome.com/how-to-use )
npm install @fortawesome/fontawesome-free
ถัดไปโดยใช้การคัดลอก webpack ปลั๊กอินคัดลอกอักษรบนเว็บโฟลเดอร์จากnode_modulesที่คุณอโฟลเดอร์ระหว่าง webpack สร้างกระบวนการของคุณ ( https://github.com/webpack-contrib/copy-webpack-plugin )
npm install copy-webpack-plugin
ในwebpack.config.js , การกำหนดค่าการคัดลอก webpack ปลั๊กอิน หมายเหตุ: โฟลเดอร์ webpack 4 dist เริ่มต้นคือ "dist" ดังนั้นเรากำลังคัดลอกโฟลเดอร์ webfonts จาก node_modules ไปยังโฟลเดอร์ dist
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
plugins: [
new CopyWebpackPlugin([
{ from: './node_modules/@fortawesome/fontawesome-free/webfonts', to: './webfonts'}
])
]
}
สุดท้ายในของคุณmain.scssไฟล์บอก fontawesome ที่อักษรบนเว็บโฟลเดอร์ได้ถูกคัดลอกไปและนำเข้าไฟล์ SCSS ที่คุณต้องการจากnode_modules
$fa-font-path: "/webfonts"; // destination folder in dist
//Adapt the path to be relative to your main.scss file
@import "../node_modules/@fortawesome/fontawesome-free/scss/fontawesome";
//Include at least one of the below, depending on what icons you want.
//Adapt the path to be relative to your main.scss file
@import "../node_modules/@fortawesome/fontawesome-free/scss/brands";
@import "../node_modules/@fortawesome/fontawesome-free/scss/regular";
@import "../node_modules/@fortawesome/fontawesome-free/scss/solid";
@import "../node_modules/@fortawesome/fontawesome-free/scss/v4-shims"; // if you also want to use `fa v4` like: `fa fa-address-book-o`
และใช้สิ่งต่อไปนี้font-family
กับพื้นที่ที่ต้องการในเอกสาร html ของคุณที่คุณต้องการใช้ไอคอน fontawesome
ตัวอย่าง :
body {
font-family: 'Font Awesome 5 Free'; // if you use fa v5 (regular/solid)
// font-family: 'Font Awesome 5 Brands'; // if you use fa v5 (brands)
}
@import "../node_modules/[...]"
ไป@import "@/../node_modules/[...]"
resolve: {alias: {'node_modules': path.join(__dirname, 'node_modules')}}
แล้ว@import "node_modules/[...]
ด้วย expressjs สาธารณะ:
app.use('/stylesheets/fontawesome', express.static(__dirname + '/node_modules/@fortawesome/fontawesome-free/'));
และคุณสามารถดูได้ที่: yourdomain.com/stylesheets/fontawesome/css/all.min.css
devDependency
. เพื่อให้โซลูชันนี้ใช้งานได้ (ในการผลิต) ควรติดตั้งแพคเกจเป็นการพึ่งพาปกติหรือไม่
--save
ไม่ใช่--save-dev
คุณสามารถเพิ่มระหว่าง<head></head>
แท็กของคุณได้ดังนี้:
<head>
<link href="./node_modules/font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css">
</head>
หรือไม่ว่าเส้นทางของคุณnode_modules
จะเป็นอย่างไร
แก้ไข (2017-06-26) - ข้อจำกัดความรับผิดชอบ: มีคำตอบที่ดีกว่า โปรดอย่าใช้วิธีนี้ ในช่วงเวลาของคำตอบเดิมเครื่องมือที่ดีไม่แพร่หลาย ด้วยเครื่องมือสร้างปัจจุบันเช่น webpack หรือ browserify อาจไม่สมเหตุสมผลที่จะใช้คำตอบนี้ ฉันสามารถลบได้ แต่ฉันคิดว่าสิ่งสำคัญคือต้องเน้นตัวเลือกต่างๆที่มีและสิ่งที่ควรทำและไม่เป็นไปได้
@import '../node_modules/...'
คำตอบอื่น ๆ ได้
font-awesome
มีการเปลี่ยนแปลงสิ่งนี้จะต้องมีการปรับแต่งหรือบำรุงรักษามากพอ ๆ กับคำตอบอื่น ๆ ความแตกต่างคือคำตอบนี้ไม่จำเป็นต้องมีการถ่ายเทหรืองาน เพียงแค่วางการนำเข้าในที่ที่ควรคาดหวัง ใน<link>
แท็ก
เนื่องจากฉันกำลังเรียนรู้ node js อยู่ฉันก็พบปัญหานี้เช่นกัน สิ่งที่ฉันทำก่อนอื่นคือติดตั้งฟอนต์ที่ยอดเยี่ยมโดยใช้ npm
npm install font-awesome --save-dev
หลังจากนั้นฉันตั้งค่าโฟลเดอร์แบบคงที่สำหรับ css และฟอนต์:
app.use('/fa', express.static(__dirname + '/node_modules/font-awesome/css'));
app.use('/fonts', express.static(__dirname + '/node_modules/font-awesome/fonts'));
และใน html:
<link href="/fa/font-awesome.css" rel="stylesheet" type="text/css">
และใช้งานได้ดี!
หากคุณใช้ npm คุณสามารถใช้ Gulp.js เครื่องมือสร้างเพื่อสร้างแพ็คเกจ Font Awesome จาก SCSS หรือ LESS ตัวอย่างนี้จะรวบรวมโค้ดจาก SCSS
ติดตั้งGulp.js v4 ในเครื่องและ CLI V2 ทั่วโลก
ติดตั้งปลั๊กอินชื่อgulp-sassโดยใช้ npm
สร้างไฟล์ main.scss ในโฟลเดอร์สาธารณะของคุณและใช้รหัสนี้:
$fa-font-path: "../webfonts";
@import "fontawesome/fontawesome";
@import "fontawesome/brands";
@import "fontawesome/regular";
@import "fontawesome/solid";
@import "fontawesome/v4-shims";
สร้าง gulpfile.js ในไดเรกทอรีแอปของคุณและคัดลอกสิ่งนี้
const { src, dest, series, parallel } = require('gulp');
const sass = require('gulp-sass');
const fs = require('fs');
function copyFontAwesomeSCSS() {
return src('node_modules/@fortawesome/fontawesome-free/scss/*.scss')
.pipe(dest('public/scss/fontawesome'));
}
function copyFontAwesomeFonts() {
return src('node_modules/@fortawesome/fontawesome-free/webfonts/*')
.pipe(dest('public/dist/webfonts'));
}
function compileSCSS() {
return src('./public/scss/theme.scss')
.pipe(sass()).pipe(dest('public/css'));
}
// Series completes tasks sequentially and parallel completes them asynchronously
exports.build = parallel(
copyFontAwesomeFonts,
series(copyFontAwesomeSCSS, compileSCSS)
);
เรียกใช้ 'gulp build' ในบรรทัดคำสั่งของคุณและดูความมหัศจรรย์
ฉันพบคำถามนี้ที่มีปัญหาคล้ายกันและคิดว่าจะแบ่งปันวิธีแก้ปัญหาอื่น:
หากคุณกำลังสร้างแอปพลิเคชัน Javascript คุณสามารถอ้างอิงไอคอนที่ยอดเยี่ยมแบบอักษรได้โดยตรงผ่าน Javascript:
ขั้นแรกทำตามขั้นตอนในคู่มือนี้ :
npm install @fortawesome/fontawesome-svg-core
จากนั้นภายในจาวาสคริปต์ของคุณ:
import { library, icon } from '@fortawesome/fontawesome-svg-core'
import { faStroopwafel } from '@fortawesome/free-solid-svg-icons'
library.add(faStroopwafel)
const fontIcon= icon({ prefix: 'fas', iconName: 'stroopwafel' })
หลังจากขั้นตอนข้างต้นคุณสามารถแทรกไอคอนภายในโหนด HTML ด้วย:
htmlNode.appendChild(fontIcon.node[0]);
คุณยังสามารถเข้าถึงสตริง HTML ที่แสดงถึงไอคอนด้วย:
fontIcon.html