Scratch3.0 引入antd

Scratch3.0 引入antd

1安装antd

$ npm install antd --save

2 配置webpack.config.js

首先在原来开启css module 的配置项中,排除antd

  test: /\.css$/,
            exclude: [/[\\/]node_modules[\\/].*antd/], // 排除antd
            use: [{
                loader: 'style-loader'
            }, {
                loader: 'css-loader',
                options: {
                    modules: true,
                    importLoaders: 1,
                    localIdentName: '[name]_[local]_[hash:base64:5]',
                    camelCase: true
                }
            }

为antd新增一个配置项,注意这里不采用css module

{ // 因为antd 基于 es module自身 css 是全局的,为了避免污染全局 css,这里单独配置

   test: /\.css$/,
    include: [/[\\/]node_modules[\\/].*antd/],
    use: [{
        loader: 'style-loader'
    }, {
        loader: 'css-loader',
        options: {
            importLoaders: 1,
            camelCase: true
        }
    }]
},

3.配置antd按需加载
官方文档中有两种方式

使用 babel-plugin-import(推荐)

// .babelrc or babel-loader option
{
  "plugins": [
    ["import", {
      "libraryName": "antd",
      "libraryDirectory": "es",
      "style": "css" // `style: true` 会加载 less 文件
    }]
  ]
}

手动引入

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

我们这里方然采用推荐方式,不然太麻烦了吧
在 babel-loader 配置项里,添加按需加载

 rules: [{
            test: /\.jsx?$/,
            loader: 'babel-loader',
            include: [path.resolve(__dirname, 'src'), /node_modules[\\/]scratch-[^\\/]+[\\/]src/],
            options: {
                // Explicitly disable babelrc so we don't catch various config
                // in much lower dependencies.
                babelrc: false,
                plugins: [
                    '@babel/plugin-syntax-dynamic-import',
                    '@babel/plugin-transform-async-to-generator',
                    '@babel/plugin-proposal-object-rest-spread',
                    ['react-intl', {
                        messagesDir: './translations/messages/'
                    }],
                    ['import', {
                        libraryName: 'antd',
                        style: 'css' // `style: true` 会加载 less 文件
                    }]
                ],
                presets: [
                    ['@babel/preset-env', {targets: {browsers: ['last 3 versions', 'Safari >= 8', 'iOS >= 8']}}],
                    '@babel/preset-react'
                ]
            }
        },

我参考的文章,到这里意思就配置完成了,但是我添加按需加载后,编译就失败了。原来还要引入 babel-plugin-import,也就是通过它来达到按需加载的,我以为项目已经有了,就忽视了,引入就OK了

$ npm install babel-plugin-import --save

现在让我们愉快的在scratch-gui中使用antd吧。溜了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值