create-react-app中安装使用antd-mobile

先按照官方的教程走一遍

create-react-app创建一个项目,引入antd-mobile

create-react-app antd-mobile-demo
cd antd-mobile-demo

npm install antd-mobile --save

对入口页面(index.html)进行一些有关移动端的相关配置

<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>
  • fastclick.js是解决移动端300ms延迟的方案。

  • 有些浏览器不支持promise,需要引入es6-promise支持

这里还强烈推荐使用按需加载(仅加载引用的组件),但是手动使用按需加载的话,很麻烦

import DatePicker from 'antd-mobile/lib/date-picker';  // 加载 JS
import 'antd-mobile/lib/date-picker/style/css';        // 加载 CSS

推荐使用babel-plugin-import插件。配置完之后babel-plugin-import会帮你自动加载js和css。

npm i --save babel-plugin-import

还需要安装一个可以自定义配置webpack的插件,具体讲解请看下面。

npm i react-app-rewired --save-dev

安装了之后,修改package.js文件,如下

"scripts": {
-   "start": "react-scripts start",
+   "start": "react-app-rewired start",
-   "build": "react-scripts build",
+   "build": "react-app-rewired build",
-   "test": "react-scripts test --env=jsdom",
+   "test": "react-app-rewired test --env=jsdom",
}

最后还需要在项目的根目录添加一个config-overrides.js文件,顾名思义就是重写配置的意思。把babel-plugin-import插件引入。

const { injectBabelPlugin } = require('react-app-rewired');
module.exports = function override(config, env) {
      config = injectBabelPlugin(['import', { libraryName: 'antd-mobile', style: 'css' }], config);
      return config;
};

引用的时候直接引入要用的模块即可:

import {DatePicker, Button} from 'antd-mobile';
<Button type="primary">按钮</Button>

如果不使用react-app-rewired插件重新配置webpack,也可以在根目录新建.babelrc文件添加babel-plugin-import插件配置。

{
  "plugins": [
    [
      "import",
      {
        "libraryName": "antd-mobile",
        "style": "css"
      }
    ]
  ]
}

启动时提示找不到模块

原因暂时未知,不过我们只需要根据提示再次安装缺少的模块就可以了

npm i react-script --save
npm i react --save
npm i react-dom --save

react-app-rewired自定义webpack配置详解


使用create-react-app脚手架创建的项目,把webpack的配置文件都封装隐藏了起来,让使用者不用关心这些配置,从而降低工具的使用难度。但是作为开发者有时候需要对webpack自定义一些配置。

package.json中有这样一条命令

"scripts": {
    "eject": "react-scripts eject"
}

执行

yarn run eject

就会把webpack配置文件反编译的项目中,然开发者可见,这时就可以根据自身情况进行自定义配置。但是缺点就是react-scripts这个包已经以文件的形式存在了,所以没法体会包升级带来的好处了。

这时就有了react-app-rewired插件来解决这个问题,通过创建一个config-overrides.js 文件来对 webpack 配置进行扩展。就像上面代码写的那样:
override方法的第一个参数config就是webpack的配置,然后在方法中对配置进行扩展(比如安装其他 loader 或者 plugins),最后再把config对象返回去。

config = injectBabelPlugin(['import', { libraryName: 'antd-mobile', style: 'css' }], config);

配置完成之后,到package.json文件中像上面代码一样修改脚本的构建命令。



作者:Iam_Bling
链接:https://www.jianshu.com/p/93946e0cbc9e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值