Sentry-javascript: 转换为 ES 模块

创建于 2017-11-14  ·  3评论  ·  资料来源: getsentry/sentry-javascript

您要请求功能还是报告错误

特征

目前的行为是什么?

库作为 CommonJS 模块公开。

什么是预期行为?

库作为 ES6 模块公开。

为什么我想要这种行为?

我只想在发布新功能后的前几天发布 raven-js 库。 之后,我想摆脱 20KB 的 raven-js 库以提高我的应用程序的性能。

为了删除 20KB 的 raven-js 库,我想使用 webpack 的“es6-tree-shaking/uglify-js-dead-code-removal”功能。

import { Raven, RavenVue } from './es6/raven';

if (FLAGS.SENTRY_ENABLE) {
    Raven.config(CONFIG.SENTRY_DSN).addPlugin(RavenVue, Vue).install();
}

这仅在使用 ES6 模块时才有可能。

有转换成es模块的计划吗? 你会接受 PR 吗?

感谢您的反馈!

Help Wanted Improvement

最有用的评论

这绝对是我想尽快做的事情。
然而,这要求我们很可能迁移到 webpack/rollup 并确保我们提供的包仍然不超过我们的 10kb 预算。
我不能说它什么时候发货,因为我现在也在做其他一些事情。

所有3条评论

我可能会对建议的解决方案添加一项改进:

如果源代码使用 es6 导入和导出,则可以使用package.jsonmodule键来引用包{ "module": "src/raven.js" }的 es6 主入口点。 请参阅: https :

这样, main键仍然可以引用包{ "main": "dist/raven.js" }的捆绑的、CommonJS 兼容版本,但是使用 webpack 或 rollup 等工具的人可以按通常的方式导入它们import Raven from 'raven-js'自动解析为文件的 ES6 版本。

这绝对是我想尽快做的事情。
然而,这要求我们很可能迁移到 webpack/rollup 并确保我们提供的包仍然不超过我们的 10kb 预算。
我不能说它什么时候发货,因为我现在也在做其他一些事情。

@kamilogorek我一直想使用 rollup.js 进行构建设置。 所以我花了一些时间将构建从 Browserify 更改为使用 Babel 的 Rollup:#1152

这是将源代码转换为 ES 模块所需的第一步。

如果您可以查看此 PR,那就太酷了。 :八爪猫:

此页面是否有帮助?
0 / 5 - 0 等级