@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
}

Readme

Keywords

none

Package Sidebar

Install

npm i @efox/react-boundary-loader

Weekly Downloads

7

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