开发环境错误日志提示
@cloudbase/js-sdk 在开发环境下会将调用 API 的错误信息以更友好的方式打印到控制台:

图中打印的错误是当前的登录类型受到函数的安全规则限制,导致没有调用函数的权限。错误信息分为两部分:
- 上半部分的黑色字体提示包含了后端 API 返回的错误信息以及基于此报错的解决方案提示
- 下半部分的红色字体是经优化后的错误堆栈,由于原始错误堆栈层次太深导致 debug 困难,此处打印的错误堆栈第一条直接定位到 SDK 源码,第二条定位到调用报错 API 的业务源码
优化的错误提示仅在开发环境中使用,根据 process.env.NODE_ENV 判断是否为开发环境。定位到 SDK 源码需要借助 SourceMap。
以上功能依赖构建工具的部分特性,目前仅支持 Webpack 和 Rollup。
- Webpack
- Rollup
Webpack 4+ 版本配置:
module.exports = {
mode: "development",
};
旧版本 Webpack 配置:
const webpack = require("webpack");
module.exports = {
plugins: [
new webpack.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify("development"),
}),
// ...其他插件
],
// ...其他配置
};
添加 sourcemap 预处理:
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: "pre",
use: ["source-map-loader"],
},
// ...其他rules
],
},
// ...其他配置
};
配置完成后启动 webpack-dev-server 即可。
Rollup 需要使用两个插件:
- rollup-plugin-replace 用来注入
process.env.NODE_ENV - rollup-plugin-sourcemaps 用来加载 sourcemap
import sourcemaps from "rollup-plugin-sourcemaps";
import replace from "rollup-plugin-replace";
export default {
plugins: [
sourcemaps(),
replace({
"process.env.NODE_ENV": JSON.stringify("development"),
}),
// ...其他插件
],
// ...其他配置
};
配置完成后使用 rollup-plugin-serve 启动 dev server 即可。