1.0.0 • Published 5 years ago
fc-promise-catch-loader v1.0.0
promise-catch-loader
一个自动为 promise 注入 catch 语句的 webpack loader 开发中或多或少需要对
Promise进行catch操作,而这些操作则会让你项目中代码变的臃肿,所以衍生出来promise-catch-loader这么一个webpack loader对你项目中的Promise自动注入catch操作的代码,解放了你的双手,也解决了臃肿冗余的问题
Install
npm i promise-catch-loader -DUsage
// webpack.config.js
module: {
  rules: [
    {
      test: /\.js$/,
      use: {
        loader: 'promise-catch-loader',
        option: {
          type: 'deep',
          line: 0,
        },
      },
    },
  ]
}
// vue.config.js
// js 项目
module.exports = {
  chainWebpack: (config) => {
    config.module
      .rule('js')
      .test(/\.js$/)
      .use('babel-loader')
      .loader('babel-loader')
      .end()
      .use('promise-catch-loader')
      .loader('promise-catch-loader')
      .end()
  },
}
// ts 项目
module.exports = {
  chainWebpack: (config) => {
    config.module
      .rule('ts')
      .test(/\.ts$/)
      .use('cache-loader')
      .loader('cache-loader')
      .end()
      .use('babel-loader')
      .loader('babel-loader')
      .end()
      .use('ts-loader')
      .loader('ts-loader')
      .end()
      .use('promise-catch-loader')
      .loader('promise-catch-loader')
      .end()
  },
}const p = new Promise()
let loading = true
p.then((res) => {
  loading = false
  console.log('resolve')
})引入 promise-catch-loader 后,不指定 line 行数时
const p = new Promise()
let loading = true
p.then(res => {
  loading = false
  console.log('resolve')
}).catch(error => {
  console.log(error')
})指定 line 为 0,即第一行时
const p = new Promise()
let loading = true
p.then((res) => {
  loading = false
  console.log('resolve')
}).catch((error) => {
  loading = false
})Options
| 字段 | 类型 | 默认值 | 可选值 | 描述 | 
|---|---|---|---|---|
| type | string | normal | 'normal', 'deep' | 代码注入类型,normal 普通遍历注入 deep 深度循环注入 | 
| line | number | - | - | catch 语句表达式取 then 方法指定行数的表达式(等同索引) | 
1.0.0
5 years ago