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データベースのストアドプロシージャとトランザクションの違い

推薦する

リモートDockerを使用した統合テスト環境の構築手順

需要背景チームには統合テストが必要であり、そのためには、mysql や rabbitmq などのミド...

Windows で mysql-8.0.18-winx64 をインストールするチュートリアル (画像とテキスト付き)

1. インストールパッケージをダウンロードするインストール パッケージは次の場所にあります:参考:...

Vue で axios を使用して画像をアップロードするときに発生する問題

目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...

MySQLアカウントのIP制限条件を変更する方法

序文最近、仕事で、MySQL ユーザーの権限を変更するには、特定の IP アドレスへのアクセスを制限...

Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

序文システムをインストールしたときに、パーティション領域を適切に割り当てませんでした。その後のメンテ...

react+antdプロジェクトをゼロから構築する方法を教えます

これまでの記事はすべて私自身の学習記録であり、主に以前に遭遇した落とし穴を忘れないようにするためのも...

シンプルなドラッグ効果を実現するJavaScript

この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Docker ベースの Tomcat クラスタと Nginx ロード バランシングの展開の概要

目次前面に書かれた1. Ngixnイメージの作成2. Java Web (Tomcat) アプリケー...

MySQL スケジュールされたデータベース バックアップ操作の例

この記事では、MySQL のスケジュールされたデータベース バックアップ操作の例について説明します。...

Vue開発の一般的な手法の詳細な説明

目次$nextTick() $forceUpdate() $セット() .sync——2.3.0 以...

MySQLの文字タイプは大文字と小文字を区別します

デフォルトでは、MySQLの文字タイプは大文字と小文字を区別しません。つまり、name='A...

mysql5.6.8 ソースコードのインストールプロセス

カーネル: [root@opop ~]# cat /etc/centos-release CentO...

Vueプロジェクトを大画面に適応させる方法の例

レムの簡単な分析まず、remはCSS単位です。pxの固定ピクセル単位と比較すると、remはより柔軟性...

HTML でマウスが停止したときに行全体の色 (tr) を変更する方法

純粋な CSS を使用して、マウスが行の上を通過するときに行の背景色を変更し、その行にフォーカスがあ...

nginxのシンプル転送リクエストのサーバーとロケーション設定の詳しい説明

nginx のサーバーと場所の構成を簡単に整理してみましょう。たとえば、URL: www.mask_...