React führt antd-mobile+postcss ein, um ein mobiles Terminal zu erstellen

React führt antd-mobile+postcss ein, um ein mobiles Terminal zu erstellen

Installieren Sie antd-mobile

Globaler Import

npm installiere antd-mobile --save

CSS in App.js importieren

importiere „antd-mobile/dist/antd-mobile.css“;

Verwenden von Antd-Komponenten in jsx

importiere React von „react“;
importiere { Button } von „antd-mobile“;
const index = () => {
    zurückkehren (
        <div>
            <Button type="primary">primär</Button>
        </div>
    );
}

Standardindex exportieren;

Import auf Anfrage

npm installiere Babel-Plugin-Import -s

Installieren Sie Plugins und überschreiben Sie webpack Konfiguration

Dokumentation zur Customize-CRA-Konfigurations-API

npm installiere react-app-rewired customize-cra -s

Befehlsmethode zum Ändern package.json

 "Skripte": {
    "Start": "React-App-Rewired-Start",
    "Build": "React-App-Rewired-Build",
    "Test": "React-App-Rewired-Test",
    "auswerfen": "react-app-rewired auswerfen"
  },

Erstellen Sie eine neue config-overrides.js im Stammverzeichnis

const { override, fixBabelImports } = erfordern('customize-cra');
modul.exporte = überschreiben(
    fixBabelImports('importieren', {
        Bibliotheksname: "antd-mobile",
        Stil: "css",
    }),
);

Löschen Sie das zuvor in App.js eingeführte CSS
Überprüfen Sie, ob es bei Bedarf importiert wird

Bildbeschreibung hier einfügen

Einführung von PostCSS PX in REM

npm installiere lib-flexible postcss-px2rem-exclude --save

Importieren Sie index.js

importiere 'lib-flexible'

Ändern Sie config-overrides.js

const { override, fixBabelImports, addPostcssPlugins, addWebpackAlias} = require('customize-cra');
const path = require("Pfad");
modul.exporte = überschreiben(
    fixBabelImports('importieren', {
        Bibliotheksname: "antd-mobile",
        Stil: "css",
    }),
    addPostcssPlugins(
        [erfordern("postcss-px2rem-ausschließen")
            (
                {
                    remUnit: 75, //Designgröße remPrecision: 2, //Nur auf zwei Dezimalstellen umrechnen exclude: /node_modules/i //Plugins müssen nicht in rem umrechnen
                }
            )
        ]
    ),
    addWebpackAlias({
        "@": Pfad.auflösen(__dirname, "src")
    })
);

Wenn Sie weniger verwenden müssen
/
Passen Sie das Design an

npm installiere weniger less-loader -s

Wenn das Projekt mit einem Fehler startet, liegt das daran, dass less-loader -Version zu hoch ist. Sie müssen sie deinstallieren und eine niedrigere Version installieren.

npm installiere [email protected] -s

Grube! Auf die Reihenfolge ist zu achten

const { override, fixBabelImports, addPostcssPlugins, addWebpackAlias, addLessLoader } = require('customize-cra');
const path = require("Pfad");
modul.exporte = überschreiben(
    fixBabelImports('importieren', {
        Bibliotheksname: "antd-mobile",
        Stil: true, //Standard ist „css“
    }),

    addLessLoader({
        javascriptEnabled: true,
        modifyVars: { "@brand-primary": "#1DA57A" }, //Benutzerdefiniertes Design}),

    addPostcssPlugins(
        [erfordern("postcss-px2rem-ausschließen")
            (
                {
                    remUnit: 75, //Designgröße remPrecision: 2, //Nur auf zwei Dezimalstellen umrechnen exclude: /node_modules/i //Plugins müssen nicht in rem umrechnen
                }
            )
        ]
    ),

    addWebpackAlias({
        "@": Pfad.auflösen(__dirname, "src")
    })
);

Ergänzung: Lösen Sie das Problem, dass die Konvertierung der PostCSS-Konfiguration von px nach rem aufgrund der Einführung von antd-mobile im React-Projekt fehlschlägt

Heute habe ich antd-mobile verwendet und festgestellt, dass das zuvor konfigurierte Postcss ungültig war. Um die nächste Falle zu vermeiden, werde ich die Lösung aufzeichnen: Schreiben Sie Postcss in der Datei config-overrides.js neu und fügen Sie den folgenden Code hinzu
npm lädt die folgenden Module herunter

npm ich reagiere-app-rewire-postcss postcss-px2rem-exclude -S
Konstante {
  außer Kraft setzen,
  fixBabelImports,
  addWebpackAlias,
  addDecoratorsLegacy,
} = erfordern("anpassen-cra");
const path = require("Pfad");
const rewirePostcss = erforderlich("react-app-rewire-postcss");
modul.exporte = überschreiben(
  //On-Demand-Laden konfigurieren fixBabelImports("import", {
    Bibliotheksname: "antd-mobile",
    Stil: "css",
  }),
  //Konfigurationsdatei aliasaddWebpackAlias({
    "@": Pfad.auflösen(__dirname, "src"),
    "@scss": Pfad.auflösen(__dirname, "src/assets/scss"),
    "@images": Pfad.auflösen(__dirname, "src/assets/images"),
    "@views": Pfad.auflösen(__dirname, "src/views"),
    "@network": Pfad.resolve(__dirname, "src/network"),
    "@store": Pfad.resolve(__dirname, "src/store"),
    "@components": Pfad.resolve(__dirname, "src/components"),
  }),
  addDecoratorsLegacy(),
  (Konfiguration, Umgebung) => {
    // Postcss neu schreiben
    rewirePostcss(Konfiguration, {
      Plugins: () => [
        erfordern("postcss-flexbugs-fixes"),
        erfordern("postcss-preset-env")({
          Autopräfix: {
            Flexbox: "Nr. 2009",
          },
          Stufe: 3,
        }),
        erfordern("postcss-px2rem-exclude")({
          // Entwurfsbreite/10
          remEinheit: 1080 / 10,
          ausschließen: /node-modules/i,
        }),
      ],
    });
    Konfiguration zurückgeben;
  }
);

Oben sind die Details zur Verwendung von React zum Erstellen eines mobilen Terminals mit antd-mobile+postcss aufgeführt. Weitere Informationen zum Erstellen eines mobilen Terminals mit React finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • So führen Sie SCSS in ein React-Projekt ein
  • Welche Möglichkeiten gibt es, CSS in React einzuführen und was sind die Unterschiede?

<<:  Docker setzt Macvlan ein, um eine hostübergreifende Netzwerkkommunikation zu erreichen

>>:  Der Unterschied zwischen gespeicherten Prozeduren und Transaktionen in MySQL-Datenbanken

Artikel empfehlen

Anwendung zur Verarbeitung von HTML-Tag-Überläufen

Verwenden Sie CSS, um Bildlaufleisten zu ändern 1...

CSS zum Erzielen von leuchtendem Text und ein paar JS-Spezialeffekten

Umsetzungsideen: Verwenden Sie text-shadow in CSS...

Lösung für das MySQL-Fehlerproblem 1045 (28000)

Ich bin auf den MySQL-FEHLER 1045 gestoßen und ha...

5 Möglichkeiten, den diagonalen Kopfzeileneffekt in der Tabelle zu erzielen

Jeder muss mit Tabellen vertraut sein. Wir stoßen...

Vue-Routing zum Implementieren der Login-Abfangung

Inhaltsverzeichnis 1. Übersicht 2. Routing Naviga...

Löschen von Dateien mit Leerzeichen in Linux (keine Verzeichnisse)

In unserer täglichen Arbeit kommen wir oft mit Da...

Beispielcode zur Implementierung des Regentropfen-Animationseffekts mit CSS

Glasfenster Was wir heute erreichen werden, ist d...

Überlegungen zur Partitionierung von MySQL-Datenbanktabellen [empfohlen]

Die Tabellenpartitionierung unterscheidet sich vo...

Was ist BFC? So löschen Sie Floats mithilfe von CSS-Pseudoelementen

BFC-Konzept: Der Blockformatierungskontext ist ei...