首先安装babel-plugin-import:
npm i babel-plugin-import -S
然后在.babelrc中添加如下代码:
// .babelrc or babel-loader option
{
"plugins": [
["import", { libraryName: "antd", style: "css" }] // `style: true` 会加载 less 文件
]
}
但如果是用的create-react-app脚手架的话,初始的根目录里并没有.babelrc文件,那就自己新建一个。
babelrc配置完之后,把项目跑起来发现并不起作用,组件样式并没有加上。
这里其实错的不是我们,也不是antd,而是这个脚手架它默认是不使用.babelrc的,可以在
node_modules/react-scripts/config/webpack.config.js中看到babelrc: false:
{
test: /\.(js|mjs|jsx|ts|tsx)$/,
include: paths.appSrc,
loader: require.resolve(‘babel-loader‘),
options: {
customize: require.resolve(
‘babel-preset-react-app/webpack-overrides‘
),
// @remove-on-eject-begin
babelrc: false,
configFile: false,
presets: [require.resolve(‘babel-preset-react-app‘)],
// Make sure we have a unique cache identifier, erring on the
// side of caution.
// We remove this when the user ejects because the default
// is sane and uses Babel options. Instead of options, we use
// the react-scripts and babel-preset-react-app versions.
cacheIdentifier: getCacheIdentifier(
isEnvProduction
? ‘production‘
: isEnvDevelopment && ‘development‘,
[
‘babel-plugin-named-asset-import‘,
‘babel-preset-react-app‘,
‘react-dev-utils‘,
‘react-scripts‘,
]
),
// @remove-on-eject-end
plugins: [
[
require.resolve(‘babel-plugin-named-asset-import‘),
{
loaderMap: {
svg: {
ReactComponent:
‘@svgr/webpack?-svgo,+titleProp,+ref![path]‘,
},
},
},
],
],
// This is a feature of `babel-loader` for webpack (not Babel itself).
// It enables caching results in ./node_modules/.cache/babel-loader/
// directory for faster rebuilds.
cacheDirectory: true,
// See #6846 for context on why cacheCompression is disabled
cacheCompression: false,
compact: isEnvProduction,
},
}
只要把false改成true再重新“npm run start”一下就好了。
后面用的antd组件的地方直接引用就行了,不用再去引样式。
import { Button } from ‘antd‘;
原文地址:https://www.cnblogs.com/samve/p/12404901.html
时间: 2024-10-08 01:43:31