React はモバイル端末を構築するために antd-mobile+postcss を導入しました

React はモバイル端末を構築するために antd-mobile+postcss を導入しました

antd-mobileをインストールする

グローバル輸入

npm をインストール antd-mobile --save

App.jsに CSS をインポートする

'antd-mobile/dist/antd-mobile.css' をインポートします。

jsxで antd コンポーネントを使用する

'react' から React をインポートします。
'antd-mobile' から Button をインポートします。
定数インデックス = () => {
    戻る (
        <div>
            <Button type="primary">プライマリ</Button>
        </div>
    );
}

デフォルトインデックスをエクスポートします。

オンデマンドインポート

npm インストール babel-plugin-import -s

プラグインをインストールし、 webpack設定を上書きする

カスタマイズ-cra 構成 API ドキュメント

npm インストール react-app-rewired カスタマイズ cra -s

package.jsonを変更するためのコマンドメソッド

 「スクリプト」: {
    "開始": "react-app-rewired 開始",
    "ビルド": "react-app-rewired ビルド",
    "テスト": "react-app-rewired テスト",
    "取り出し": "react-app-rewired 取り出し"
  },

ルートディレクトリに新しいconfig-overrides.jsを作成します。

const { override, fixBabelImports } = require('customize-cra');
モジュール.エクスポート = オーバーライド(
    BabelImportsを修正('import', {
        ライブラリ名: 'antd-mobile',
        スタイル: 'css',
    })、
);

App.jsで以前に導入したCSSを削除します。
オンデマンドでインポートされているかどうかを確認する

ここに画像の説明を挿入

postcss pxからremへの導入

npm で lib-flexible postcss-px2rem-exclude --save をインストールします

index.jsをインポートする

'lib-flexible' をインポートする

config-overrides.jsファイルを変更する

const { override、fixBabelImports、addPostcssPlugins、addWebpackAlias} = require('customize-cra');
定数パス = require("パス");
モジュール.エクスポート = オーバーライド(
    BabelImportsを修正('import', {
        ライブラリ名: 'antd-mobile',
        スタイル: 'css',
    })、
    追加Postcssプラグイン(
        [require("postcss-px2rem-exclude")
            (
                {
                    remUnit: 75, //デザインサイズ remPrecision: 2, //小数点以下2桁までしか変換しない exclude: /node_modules/i //プラグインはremに変換する必要がない
                }
            )
        ]
    )、
    WebpackAliasを追加します({
        "@": path.resolve(__dirname, "src")
    })
);

使用量を減らす必要がある場合
/
テーマをカスタマイズする

npm インストール less less-loader -s

プロジェクトがエラーで起動する場合は、 less-loaderバージョンが高すぎることが原因です。アンインストールして、より低いバージョンをインストールする必要があります。

npm インストール [email protected] -s

ピット! 順番に注意が必要

const { override、fixBabelImports、addPostcssPlugins、addWebpackAlias、addLessLoader } = require('customize-cra');
定数パス = require("パス");
モジュール.エクスポート = オーバーライド(
    BabelImportsを修正('import', {
        ライブラリ名: 'antd-mobile',
        style: true, //デフォルトは 'css'
    })、

    レスローダーを追加します({
        javascriptが有効: true、
        modifyVars: { "@brand-primary": "#1DA57A" }, //カスタムテーマ}),

    追加Postcssプラグイン(
        [require("postcss-px2rem-exclude")
            (
                {
                    remUnit: 75, //デザインサイズ remPrecision: 2, //小数点以下2桁までしか変換しない exclude: /node_modules/i //プラグインはremに変換する必要がない
                }
            )
        ]
    )、

    WebpackAliasを追加します({
        "@": path.resolve(__dirname, "src")
    })
);

補足: reactプロジェクトにantd-mobileが導入されたためにpostcss設定のpxからremへの変換が失敗する問題を解決します

今日、antd-mobileを使用したところ、以前設定したpostcssが無効であることがわかりました。次の落とし穴を防ぐために、解決策を記録します。config-overrides.jsファイルでpostcssを書き直し、次のコードを追加します。
npmは以下のモジュールをダウンロードします

npm i react-app-rewire-postcss postcss-px2rem-exclude -S
定数{
  オーバーライド、
  BabelImportsを修正、
  WebpackAliasを追加、
  デコレーターレガシーを追加、
} = require("customize-cra");
定数パス = require("パス");
postcss は、react-app-rewire-postcss のサブクラスです。
モジュール.エクスポート = オーバーライド(
  //オンデマンド読み込みを設定するfixBabelImports("import", {
    ライブラリ名: "antd-mobile",
    スタイル: "css",
  })、
  //設定ファイルエイリアスaddWebpackAlias({
    "@": path.resolve(__dirname, "src"),
    "@scss": path.resolve(__dirname, "src/assets/scss"),
    "@images": path.resolve(__dirname, "src/assets/images"),
    "@views": path.resolve(__dirname, "src/views"),
    "@network": path.resolve(__dirname, "src/network"),
    "@store": path.resolve(__dirname, "src/store"),
    "@components": path.resolve(__dirname, "src/components"),
  })、
  デコレータレガシー()、
  (設定、環境) => {
    // postcss を書き換える
    rewirePostcss(config, {
      プラグイン: () => [
        必要("postcss-flexbugs-fixes")、
        必要("postcss-preset-env")({
          自動プレフィックス: {
            フレックスボックス: "no-2009",
          },
          ステージ: 3,
        })、
        必要("postcss-px2rem-exclude")({
          // デザイン案幅/10
          rem単位: 1080 / 10,
          除外: /node-modules/i、
        })、
      ]、
    });
    設定を返します。
  }
);

以上がReactを使ってantd-mobile+postcssでモバイル端末を構築する手順です。Reactを使ったモバイル端末の構築についての詳細は、123WORDPRESS.COM内の他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • ReactプロジェクトにSCSSを導入する方法
  • React に CSS を導入する方法とその違いは何ですか?

<<:  Dockerはホスト間のネットワーク通信を実現するためにMacvlanを導入する

>>:  MySQLデータベースのストアドプロシージャとトランザクションの違い

推薦する

データベースの水平セグメンテーションを実装するための2つのアイデア

導入インターネット アプリケーションの普及に伴い、膨大なデータの保存とアクセスがシステム設計における...

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...

MySQLのダウンロードとインストールのプロセスの詳細な説明

1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...

jQueryは広告の表示と非表示のアニメーションを実装します

数秒後に広告が表示されて消えることがよくあります。この機能を実装するには、JQuery フレームワー...

Centos8 でローカル Web サーバーを構築するための実装手順

1 概要システム Centos8 では、httpd を使用してローカル Web サーバーを構築します...

MySQL の自動増分 ID に関するいくつかの小さな問題の要約

以下の質問はすべて InnoDB ストレージ エンジンに基づいています。 1. 最も大きな ID を...

MySQLでよく使われる4つのストレージエンジンについて簡単に説明します。

よく使われる4つのMySQLエンジンの紹介(1):MyISAMストレージエンジン:トランザクションや...

HTMLリンクタグのrel属性

<link> タグは、現在のドキュメントと Web コレクション内の他のドキュメントとの...

MySQL データベースのデータ テーブルの最適化、外部キーの分析、3 つのパラダイムの使用

この記事では、例を使用して、MySQL データベースのデータ テーブルの最適化、外部キーの使用、およ...

Vue 父子価値移転、兄弟価値移転、子父価値移転の詳細な説明

目次1. 親コンポーネントが子コンポーネントに値を渡す1. 親コンポーネント.vue 2. サブコン...

CSS で div 凹角スタイルを実装するサンプル コード

通常の開発では、凸型の丸い角、つまり border-radius 属性を使用するのが一般的です。凹角...

Linux での Docker のインストールと展開の例

以下の記事を読んだ後、プロジェクトをサーバーにデプロイできます。Tomcat、JDK、MySQL な...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

Firefoxでリンクをクリックしたときに点線の枠線を削除する方法

今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...

シンプルな計算機を実装する JavaScript コード

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...