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

Wissen Sie, welche Möglichkeiten es gibt, in Vue Routen zu überspringen?

Inhaltsverzeichnis Die erste Methode: Router-Link...

Nginx-Praxis zur Optimierung hoher Parallelität

1. Notwendigkeit des Tunings Ich habe mich immer ...

Richtige Methode zum Laden von Schriftarten in Vue.js

Inhaltsverzeichnis Schriftarten mit font-face ric...

Implementierung der kontinuierlichen Integration von Jenkins+Docker

Inhaltsverzeichnis 1. Einführung in Jenkins 2. Je...

So überprüfen und organisieren Sie Websitedateien mit Dreamweaver8

Was ist der Zweck der Erstellung einer eigenen Web...

Das WeChat-Applet realisiert ein Verknüpfungsmenü

Um das Kursdesign zu realisieren, habe ich kürzli...

Pycharm2017 realisiert die Verbindung zwischen Python3.6 und MySQL

In diesem Artikel erfahren Sie, wie Sie Python3.6...

JavaScript zum Erreichen eines einfachen Seiten-Countdowns

In diesem Artikelbeispiel wird der spezifische Ja...