@efox/react-boundary-loader

1.0.5 • Public • Published

react 组件错误边界包裹loader

使用方式

1.安装

yarn add -D @efox/react-boundary-loader

2.配置

// webpackChain 配置例子
webpackChain.module
      .rule('jsx')
      .test(/\.(jsx|tsx)$/)
      .use('reactErrorBoundary')
      .loader('@efox/react-boundary-loader')
      .options({
        boundarystyle: { color: '#333', fontSize: '20px' },  // 错误提示样式
        boundarytext: '模块异常', // 错误提示样本
      })
      .end()

// webpack 常规配置
{
test: /\.(jsx|tsx)$/,
      use: [
            /* config.module.rule('jsx').use('errorBoundary') */
            {
                  loader: '@efox/react-boundary-loader',
                  options: {
                        boundarystyle: {
                        color: '#333',
                        fontSize: '20px'
                        },
                        boundarytext: '模块异常,'
                  }
            }
      ]
}

本loader主要提供ESM规范下React的组件暴露的以下四种方式进行代码转换:

export default ComponentA // 情况1 export default
export default {ComponentA, ComponentB, ComponentC} // 情况2 export default {}
// 情况3 export const
export const ComponentA = (props) => {
 // 组件代码实现
} 
export {ComponentA, ComponentB, ComponentC} // 情况4 export {}

转换如下:

export default ErrorBoundaryWrap(ComponentA) // 情况1
// 情况2
export default {
  ComponentA: ErrorBoundaryWrap(ComponentA), 
  ComponentB: ErrorBoundaryWrap(ComponentB), 
  ComponentC: ErrorBoundaryWrap(ComponentC)
}
// 情况3
export const ComponentA = ErrorBoundaryWrap((props) => {
 // 组件代码实现
})
// 情况4
const ComponentAerrorBoundary = ErrorBoundaryWrap(ComponentA)
const ComponentBerrorBoundary = ErrorBoundaryWrap(ComponentB)
const ComponentCerrorBoundary = ErrorBoundaryWrap(ComponentC)
export {
  ComponentAerrorBoundary as ComponentA, 
  ComponentBerrorBoundary as ComponentB, 
  ComponentCerrorBoundary as ComponentC
}

/@efox/react-boundary-loader/

    Package Sidebar

    Install

    npm i @efox/react-boundary-loader

    Weekly Downloads

    0

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    22.2 kB

    Total Files

    15

    Last publish

    Collaborators

    • ron0115
    • hiitiger
    • ckken
    • doerme
    • hupp
    • magic_zhong
    • yz101x
    • wangcylive
    • tim2018
    • linhaoran
    • yangshangzhi
    • lucky-dog
    • wu_wei
    • nijina
    • zhengy1995
    • bennyshi
    • yellowbeee
    • keylenn