unplugin-catch-throw
v2.0.2
Published
A plugin that throws exception in catch
Downloads
132
Maintainers
Readme
unplugin-catch-throw
如果你的项目中存在catch捕获异常,但是又未把这个异常抛出,导致项目出现问题无法排查
如果你在做前端监控 - promise异常捕获
当前插件通过在try/catch块或者promise.catch插入Promise.reject,把异常抛出
Install
npm i unplugin-catch-throw -D
⚙️ Options
interface Options {
include?: FilterPattern
exclude?: FilterPattern
}
支持注释排除处理
try/catch 支持两种注释方式,new Promise仅支持内联注释
/*! @ignore_catch_throw */
try {
throw new Error('ignore comment')
}
catch (err) {
// test
}
try {
throw new Error('ignore comment')
}
catch (err) {
/*! @ignore_catch_throw */
}
new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('ignore comment'))
})
}).catch(() => {
/*! @ignore_catch_throw */
})
文件级注释
/*! @ignore_catch_throw-file */
try {
throw new Error('ignore comment')
}
catch (err) {
// test
}
const p1 = new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('p1 rejected'))
})
}).catch(() => {
})
// vite.config.ts
import CatchThrow from 'unplugin-catch-throw/vite'
export default defineConfig({
plugins: [
CatchThrow({ /* options */ }),
],
})
Example: playground/
// rollup.config.js
import CatchThrow from 'unplugin-catch-throw/rollup'
export default {
plugins: [
CatchThrow({ /* options */ }),
],
}
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require('unplugin-catch-throw/webpack')({ /* options */ })
]
}
// nuxt.config.js
export default defineNuxtConfig({
modules: [
['unplugin-catch-throw/nuxt', { /* options */ }],
],
})
This module works for both Nuxt 2 and Nuxt Vite
// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
require('unplugin-catch-throw/webpack')({ /* options */ }),
],
},
}
// esbuild.config.js
import { build } from 'esbuild'
import CatchThrow from 'unplugin-catch-throw/esbuild'
build({
plugins: [CatchThrow()],
})