跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 那个啥 babel-plugin-import 到底要咋配置才能按需引入
未分類
10 2 月 2021

那个啥 babel-plugin-import 到底要咋配置才能按需引入

那个啥 babel-plugin-import 到底要咋配置才能按需引入

資深大佬 : zxCoder 3

我按文档这样做的

1 create-react-app创建了一个项目,然后装了antd和babel-plugin-import,然后按文档说的,配置了.babelrc,内容是:

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

然后还是不能按需加载,控制台仍然显示

index.js:8 You are using a whole package of antd, please use https://www.npmjs.com/package/babel-plugin-import to reduce app bundle size. 

package.json 内容如下:

{   "name": "mongodb-pbac-client-react",   "version": "0.1.0",   "private": true,   "dependencies": {     "@testing-library/jest-dom": "^5.11.9",     "@testing-library/react": "^11.2.5",     "@testing-library/user-event": "^12.7.1",     "antd": "^4.12.3",     "react": "^17.0.1",     "react-dom": "^17.0.1",     "react-scripts": "4.0.2",     "web-vitals": "^1.1.0"   },   "scripts": {     "start": "react-scripts start",     "build": "react-scripts build",     "test": "react-scripts test",     "eject": "react-scripts eject"   },   "eslintConfig": {     "extends": [       "react-app",       "react-app/jest"     ]   },   "browserslist": {     "production": [       ">0.2%",       "not dead",       "not op_mini all"     ],     "development": [       "last 1 chrome version",       "last 1 firefox version",       "last 1 safari version"     ]   },   "devDependencies": {     "babel-plugin-import": "^1.13.3"   } } 

只有一个组件,里面引入部分是这样的:

import { Button } from 'antd';  // 只引入这个,有按钮,没有样式,而且 console 显示没有按需加载 // import 'antd/dist/antd.css'; // 引入所有样式 // import Button from 'antd/lib/button'; // import 'antd/lib/button/style/css';  

这东西到底怎么玩的,只是要这个简单的功能,网上查到的都很复杂,不知道怎么改

大佬有話說 (13)

  • 資深大佬 : nnnToTnnn

    eject

  • 資深大佬 : nnnToTnnn

    see https://github.com/facebook/create-react-app#philosophy

    https://ant.design/docs/react/getting-started-cn#%E6%8C%89%E9%9C%80%E5%8A%A0%E8%BD%BD

  • 資深大佬 : mdn

    //ant.design/docs/react/use-with-create-react-app-cn
    官方文档不是有介绍吗?

  • 主 資深大佬 : zxCoder

    @nnnToTnnn
    @mdn

    文档看了呀 就是按文档说的做,上面写了

    “`
    按需加载#
    antd 默认支持基于 ES modules 的 tree shaking,对于 js 部分,直接引入 import { Button } from ‘antd’ 就会有按需加载的效果。

    如果你在开发环境的控制台看到下面的提示,那么你可能还在使用 [email protected] 或者 tree shaking 失效,请升级或检查相关配置。
    “`

  • 主 資深大佬 : zxCoder

    @mdn 这个是全部引入吧

  • 資深大佬 : murmur

    按需引入我记得是用注释,搜 babel dynamic import,至少是有一个 comment:true 的选项
    如果是 react 版本太老,有第三方组件实现按需引入

  • 資深大佬 : murmur

    顺便,主说的是按需引用还是分模块打包,还是我理解难了

  • 主 資深大佬 : zxCoder

    @murmur 我用的就是那个什么第三方插件 babel-plugin-import 吧 都是按官方文档弄的,就是跑不起来

  • 主 資深大佬 : zxCoder

    @nnnToTnnn 你的意思是要 eject 之后 把配置写在 config 里面吗

  • 資深大佬 : Sapp

    我这么设置是成功的,我猜应该是你的 babel 根本没生效,是不是 create-react 有他自己的 babel 配置给你覆盖了?上面说的 eject 应该是对的

  • 主 資深大佬 : zxCoder

    @Sapp 奇了怪了,换成 vue 的 antd,也是 import {Button} from ‘ant-design-vue’; 结果没配置 babel 也能按需引入。。。f12 没警告。。。。太神奇了

    到底该不该配置这玩意 我还是搞不清楚

  • 資深大佬 : triple7

    cra 不支持你直接配置 babelrc,所以你的配置没有生效,你需要 eject 暴露出来直接修改 webpack 。

    或者可以使用 react-app-rewired 和 customize-cra 自定义 webpack 配置。

    可以参考我之前的文章: https://zhuanlan.zhihu.com/p/96103181

  • 主 資深大佬 : zxCoder

    @triple7 原来如此。。。这么复杂

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具