AntD-Mobile安装步骤(包含适配,按需加载)

1.新建项目

// 代码包安装器
npm install -g create-react-app 

// 新建项目
create-react-app my-app

// 进入
cd my-app

// 安装antd-mobile
npm install antd-mobile --save

2.安装依赖

(一路安装下去 )

// 修改webepack 的 react配置
npm install react-app-rewired@2.0.2 customize-cra --save-dev 

// px2rem适配的配置
//  npm install postcss-px2rem lib-flexible --save      --- 这个会影响 antd 的UI显示  使用下面的
npm install postcss-px2rem-exclude -D    
npm install react-app-rewire-postcss --save-dev

//按需加载
npm install babel-plugin-import --save-dev

// 使用scss
npm install sass-resources-loader --save-dev

3.修改配置

1) .head配置

<!DOCTYPE html>
<html>
<head>
  <!-- set `maximum-scale` for some compatibility issues -->
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
  <script src="https://as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js"></script>
  <script>
    if ('addEventListener' in document) {
      document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
      }, false);
    }
    if(!window.Promise) {
      document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>');
    }
  </script>
</head>
<body></body>
</html>

2). 修改 package.json 文件

// 原来的:
 "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
// 修改后:
 "scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
  },

3).根目录新建 config-overrides.js

const { override, fixBabelImports, addWebpackAlias } = require("customize-cra");
const path = require("path");
const rewirePostcss = require("react-app-rewire-postcss");
const px2rem = require("postcss-px2rem");

module.exports = override(
  // 按需加载
  fixBabelImports("import", {
    libraryName: "antd-mobile",
    style: "css",
  }),
  //路径别名
  addWebpackAlias({
    "@": path.resolve(__dirname, "src"),
  }),
  // px2rem适配的配置
  (config, env) => {
    // 重写postcss
    rewirePostcss(config, {
      plugins: () => [
        require("postcss-flexbugs-fixes"),
        require("postcss-preset-env")({
          autoprefixer: {
            flexbox: "no-2009",
          },
          stage: 3,
        }),
       // 关键:设置px2rem
        // px2rem({
        //   remUnit: 75,
        //   exclude: "/node-modules/i",
        // }),
        // 使用这个才不影响antd 的 UI
        require("postcss-px2rem-exclude")({
          // remUnit 等于 设计稿宽度  750除以10  37.5
          remUnit: 75,
          exclude: /node_modules/i,
        }),
      ],
    });

    // 修改 sass 配置 ,规则 loader 在第五项(具体看配置)
    // 全局引入公共样式,使用时候不需再导入
    const loaders = config.module.rules.find((rule) =>
      Array.isArray(rule.oneOf)
    ).oneOf;
    loaders[5].use.push({
      loader: "sass-resources-loader",
      options: {
        // resources: path.resolve(__dirname, "src/asset/css/common.scss"), //全局引入公共的scss 文件
      },
    });

    return config;
  }
);

4).在index.js 直接引入 适配的 lib-flexible

import 'lib-flexible'

4.启动

npm start
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容