色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何在Next.js項目中添加字體牛逼

錢琪琛2年前10瀏覽0評論

我正在嘗試使用webpack將font-awesome添加到我的Next.js項目中。我已經試著遵循我在網上找到的各種指示(使用文件加載器、url加載器),但是沒有一個對我有效。我暫時放棄了用webpack加載font-awesome,但我想知道我如何才能做到這一點。目前,我有一個用來加載字體的. scss文件。

其內容:

$fa-font-path: "static/fonts";
@import "~font-awesome/scss/font-awesome.scss";

我將字體從node _ modules/font-awesome/fonts手動移動到static/fonts。這很完美,但我想知道在2017年是否有webpack 2的方式來做到這一點。

有三種方法:

1:通過向Head組件添加一個FontAwesome腳本 創建標題組件,添加腳本,并在標題組件或布局文件中呈現該組件,您可以在每個頁面中使用它。

<Head>
  <script
    // you might need to get a newer version
    src="https://kit.fontawesome.com/fbadad80a0.js"
    crossOrigin="anonymous"
  ></script>
</Head>

2:在_document.js中添加到CDN的鏈接。 可以通過在pages文件夾下創建一個_document.js來覆蓋Next.js中的根html文件。你也可以添加一些其他的CDN。但是,最簡單的方法是:

<Html>
  <Head>
    <link
      rel="stylesheet"
      type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
      />
    <link
      rel="stylesheet"
      type="text/css"
      href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"
    />
  </Head>
  <body>
    <Main />
    <NextScript />
  </body>
</Html>

3:為FontAwesome安裝所有必要的npm包

npm install --save @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons @fortawesome/react-fontawesome

然后在_app.js文件的頂部添加這幾行:

// import Font Awesome CSS
import "@fortawesome/fontawesome-svg-core/styles.css";
import { config } from "@fortawesome/fontawesome-svg-core";
config.autoAddCss = false;

此后,您可以導入& amp將其余的FontAwesome圖標用作React組件,如下所示:

import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faCheck, faTrash } from "@fortawesome/free-solid-svg-icons";

<FontAwesomeIcon icon={faCheck} className="fas fa-check" style={{ color: "red" }}
></FontAwesomeIcon>

更新 要在nextjs13中進行設置,請參考:

如何將字體Awesome添加到Next.js 13項目錯誤模塊未找到

對于任何想看下一個9的真實例子的人,看看https://github.com/UnlyEd/next-right-now吧

有趣的部分是:

https://github . com/UnlyEd/next-right-now/blob/1f 48 e 47 a 92/src/components/page layouts/nav . tsx # L113(用法) https://github . com/UnlyEd/next-right-now/blob/1f 48 e 47 a 92/src/pages/_ app . tsx # L22-L25(配置) 免責聲明:我是該項目的貢獻者

Config: pages/_app.tsx

import { config, library } from '@fortawesome/fontawesome-svg-core';
import '@fortawesome/fontawesome-svg-core/styles.css';
import { faGithub } from '@fortawesome/free-brands-svg-icons';
import { faAngleDown } from '@fortawesome/pro-solid-svg-icons';

// See https://github.com/FortAwesome/react-fontawesome#integrating-with-other-tools-and-frameworks
config.autoAddCss = false; // Tell Font Awesome to skip adding the CSS automatically since it's being imported above
library.add(
  faGithub, faAngleDown
);

您可以通過從正確的存儲庫中導入圖標來使用實體/燈光等

用法:components/Nav.tsx

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';

<FontAwesomeIcon icon={['fab', 'github']} />

編輯Next.js 10:

雖然上面仍然有效,但我現在對Next.js 10和更高版本的建議是將您的字體相關配置拆分到一個不同的文件中,并將該文件導入到_app.tsx中。這使代碼更易于維護,僅此而已。

類似于:

https://github . com/UnlyEd/next-right-now/blob/e6f 6258207/src/pages/_ app . tsx # L15 https://github . com/UnlyEd/next-right-now/blob/e6f 625820726d 24967 B4 b 14 a5 f 32 c 93266 fac 3c 9/src/utils/icons/font-awesome . ts 這篇文章中沒有一個解決方案是關于如何通過cdn使用font-awesome的,所以,我打算這么做。

有多種方法可以做到這一點,但我通常使用_app.js或_document.js來完成此類任務。

下面是它是如何通過_document.js實現的

import Document, { Html, Head, Main, NextScript } from "next/document";

class MyDocument extends Document {
    render() {
        return (
            <Html>
                <Head>
                    <link
                        
                        rel="stylesheet"
                        integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1"
                        crossOrigin="anonymous"
                    />
                    <script src="https://kit.fontawesome.com/e20sdfsd9.js" crossOrigin="anonymous"></script>
                </Head>
                <body>
                    <Main />
                    <NextScript />
                </body>
            </Html>
        );
    }
}

export default MyDocument;

關于與其他工具和框架集成的官方文檔,請參見此處。

您將能夠執行以下操作:

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { config, library } from '@fortawesome/fontawesome-svg-core';
import { fas } from '@fortawesome/free-solid-svg-icons';
import { fab } from '@fortawesome/free-brands-svg-icons';

config.autoAddCss = false;
library.add(fas, fab);

return ( 
  <FontAwesomeIcon icon={['fas', 'hat-wizard']} />
  <FontAwesomeIcon icon={['fab', 'github']} />
)

或者

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faAdobe } from '@fortawesome/free-brands-svg-icons/faAdobe';

return ( 
   <FontAwesomeIcon icon={faAdobe} />
)

有幾種方法可以做到這一點。第一種方法是通過next/head創建一個head組件,并導入到那里——參見此處:

另一種方法是創建一個HOC來包裝您的頁面,并使用一個簡單的import ' font-awesome/CSS/font-awesome . min . CSS '將其導入

或者,你可以用同樣的導入方式將它導入到你的頁面中。(我相信這會將它的范圍擴大到特定的頁面。請仔細檢查我)

希望這有所幫助。

紗線添加@fortawesome/fontawesome-free

in _app.js

import '@fortawesome/fontawesome-free/js/fontawesome';
import '@fortawesome/fontawesome-free/js/solid';
import '@fortawesome/fontawesome-free/js/regular';
import '@fortawesome/fontawesome-free/js/brands';

我想用React 18 Next.js 13和bootstrap 5用fontAwesome貼個回答。

我看到了一個錯誤

Error: Hydration failed because the initial UI does not match what was rendered on the server.

在控制臺中,我得到一個類似這樣的錯誤

Expected server HTML to contain a matching <li> in <div>

我通過使用每個人都在Next.js中使用的useEffect技巧來修復這個問題,使fontAwesomeIcon只在掛載時渲染

下面是一個組件示例

import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Row, Col } from 'reactstrap';

const AboutUsProcess = ({ icon, iconText, color, title, description, image, lottie, inverse, children }) => {


  const [mounted, setMounted] = useState(false);
  useEffect(() => {
      setMounted(true) // must be true to render FontAwesomeIcon
  }, [])
  
  
  return  (
    <Row className="flex-center">
      <Col md lg={5} xl={4} className={classNames('pl-lg-6', { 'order-md-2': inverse })}>
      </Col>
      <Col md lg={5} xl={4} className="mt-4 mt-md-0">
        <h5 className={`text-${color}`}>
          { mounted && (
            <FontAwesomeIcon icon={icon} className="mr-2" />
            )}
            {iconText}
        </h5>
        <h3>{title}</h3>
        <p>{description}</p>
        {children}
      </Col>
    </Row>
  );
};


export default AboutUsProcess;

試試這個

const Hello = () => {

    return (
        <div>
            <Head>
                <title>New Title</title>
                <meta name="description" content="some description here" />
                <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" />
            </Head>

            <h1>Hello World <i class="far fa-laugh-beam"></i></h1>
        </div>
    )
}

export default Hello

在繼續之前,請務必安裝以下軟件包

npm i --save @fortawesome/fontawesome-svg-core
npm install --save @fortawesome/free-solid-svg-icons
npm install --save @fortawesome/react-fontawesome

在具有Turbo功能的Next13中,你可以將字體文件添加到“字體”文件夾中app & quot文件夾-然后使用絕對路徑。

骯臟:)希望這將很快得到解決..