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

Detaillierte Erklärung des Linux-Kernel-Makros Container_Of

Inhaltsverzeichnis 1. Wie werden Strukturen im Ge...

Tiefgreifendes Verständnis mathematischer Ausdrücke in CSS calc()

Der mathematische Ausdruck calc() ist eine Funkti...

Detaillierte Erläuterung der Konzepte und Verwendung von Docker Swarm

Docker Swarm ist ein von Docker entwickelter Cont...

Zusammenfassung der MySQL-Datenmigration

Inhaltsverzeichnis Vorwort: 1. Über die Datenmigr...

Einfache Schritte zum Erstellen eines MySQL-Containers mit Docker

Vorwort Wir haben Docker bereits installiert und ...

Detaillierte Erklärung gängiger Docker Compose-Befehle

1. Die Verwendung von Docker Compose ist der Verw...

Verwendung des Linux Dig-Befehls

Dig-Einführung: Dig ist ein Tool, das DNS einschl...

Das ganz links stehende Übereinstimmungsprinzip des MySQL-Datenbankindex

Inhaltsverzeichnis 1. Gemeinsame Indexbeschreibun...

MySQL-Paket für Abfrage ist zu groß – Problem und Lösung

Problembeschreibung: Fehlermeldung: Ursache: com....

So erhalten Sie den Inhalt einer TXT-Datei über FileReader in JS

Inhaltsverzeichnis JS erhält den Inhalt der TXT-D...