antd-react-mobile(踩坑记录)----不断更新···

1.按照官网步骤进行,

$ npm install -g create-react-app

# 注意:工具会自动初始化一个脚手架并安装 React 项目的各种必要依赖,如果在过程中出现网络问题,请尝试配置代理或使用其他 npm registry。

$ create-react-app my-app

$ cd my-app

$ npm install antd-mobile --save

入口页面 (html 或 模板) 相关设置:

< 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 >

 按需加载#

 $ npm install react-app-rewired --save-dev

/* package.json */
"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 用于修改默认配置。

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

所有步骤进行之后,恭喜你,踏入react-mobile第一坑,报错:

The "injectBabelPlugin" helper has been deprecated as of v2.0. You can use customize-cra plugins in replacement - https://github.com/arackaf/customize-cra#available-plugins 

  

原因: react-scripts 升级到 2.1.2 以后破坏了 react-app-rewired;然后 react-app-rewired 升级到 2.x 以后直接干掉了所有 helpers。react-scripts 升级到 2.1.2 以后破坏了 react-app-rewired;然后 react-app-rewired 升级到 2.x 以后直接干掉了所有 helpers。

 解决方法:把react-app-rewired 进行降级后可以了,即

$ yarn add [email protected]

 安装低版本的react-app-rewired以后,重新npm install,再运行yarn start,即可解决问题,实现antd按需引入

猜你喜欢

转载自www.cnblogs.com/NatChen/p/10437151.html