react cdn引入出现错误

用的是react + ts + craco,没有eject
报错原因:Cannot set property 'cdn' of undefined
如果不用ts就没有这个错误
以下是craco.config.js


const path = require('path');
const { whenProd, getPlugin, pluginByName } = require('@craco/craco');
module.exports = {
  webpack: {
    alias: {
      '@': path.resolve(__dirname, 'src')
    },
    configure: (config) => {
      let cdn = {
        js: [],
        css: []
      }
      whenProd(() => {
        config.externals = {
          react: 'React',
          'react-dom': 'ReactDOM'
        }
        cdn = {
          js: [
            'https://cdnjs.cloudflare.com/ajax/libs/react/18.1.0/umd/react.production.min.js',
            'https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.1.0/umd/react-dom.production.min.js',
          ],
          css: []
        }
      })
      const { isFound, match } = getPlugin(
        config,
        pluginByName('HtmlWebpackPlugin')
      )
      if (isFound) {
        match.options.cdn = cdn // 这行报错
      }
      return config
    }
  },
}

打印下看看是啥内容

console.log(match.options)

看起来像是TypeScript中没有正确定义类型导致的,检查一下报错的那行代码中的 "cdn" 变量是否正确定义了类型,并确保它的类型与要赋值的类型相同。

错误是因为在 TypeScript 中,config 变量的类型可能不包含 HtmlWebpackPlugin 插件,导致无法设置 cdn 属性。match.options里面没有cdn属性,是否正确定义了类型,与要赋值的类型是否相同。

错误提示不能设置没有定义的cdn属性,match.options里面没有cdn属性或者match和match.option没有定义

你对比看下是否是该原因:https://www.jianshu.com/p/8de8f679b7d1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation