- 这个项目主要目的是简化基于webpack构建的项目,上传sourcemaps到平台的配置。
- 由于官方的插件
@sentry/webpack-plugin
更新非常快,最新版已经不适配当前私有化部署版本了。所以通过当前项目固定官方插件版本。
# npm
npm i emnj-sentry-webpack-plugin
# yarn
yarn add emnj-sentry-webpack-plugin
# pnpm
pnpm install emnj-sentry-webpack-plugin
EmnjSentryWebpackPlugin插件的所有配置参数选项和官方的1.21.0版本配置选项相同,参考地址:1.21.0版本配置选项
const EmnjSentryWebpackPlugin = require('emnj-sentry-webpack-plugin');
const isBuildProd = process.env.BUILD_ENV == 'production';
const plugins = []
if (isBuildProd) {
plugins.push(new EmnjSentryWebpackPlugin({
// 建议每次发布一个生产版本,release版本变更一下
release: '1.0.0',
org: "your org",
project: "your project",
// 重要:资源上传的url,不配置这是sentry官网的域名。
url: 'https://*******.com/',
// 重要:认证的token
authToken: '**********************',
// 只需要是打包后资源目录下的js和map文件
include: ['./dist/**/*.js', './dist/**/*.map'],
// 根目录下可以配置忽略上传的文件规则
ignoreFile: '.sentrycliignore',
ignore: ['node_modules', 'webpack.config.js'],
configFile: 'sentry.properties',
// 这个比较重要,未配置正确,这无法和源代码映射
urlPrefix: '~/qn/js'
})
)
}
// 事例
const config = {
plugins: plugins,
};
const EmnjSentryWebpackPlugin = require('emnj-sentry-webpack-plugin');
const isBuildProd = process.env.BUILD_ENV == 'production';
module.exports = {
chainWebpack: config => {
if (isBuildProd) {
// 生产环境配置
// 1.配置sentry
config.plugin('emnj-sentry-webpack-plugin').use(EmnjSentryWebpackPlugin, [
{
// 建议每次发布一个生产版本,release版本变更一下
release: '1.0.0',
org: "your org",
project: "your project",
// 重要:资源上传的url,不配置这是sentry官网的域名。
url: 'https://*******.com/',
// 重要:认证的token
authToken: '**********************',
// 只需要是打包后资源目录下的js和map文件
include: ['./dist/**/*.js', './dist/**/*.map'],
// 根目录下可以配置忽略上传的文件规则
ignoreFile: '.sentrycliignore',
ignore: ['node_modules', 'webpack.config.js'],
configFile: 'sentry.properties',
// 这个比较重要,未配置正确,这无法和源代码映射
urlPrefix: '~/qn/js'
}
]);
}
}
}
更详细参考文档参考内部文档webpack构建上传sourcemaps