您要请求功能还是报告错误?
特征
目前的行为是什么?
库作为 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 吗?
感谢您的反馈!
我可能会对建议的解决方案添加一项改进:
如果源代码使用 es6 导入和导出,则可以使用package.json
的module
键来引用包{ "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,那就太酷了。 :八爪猫:
最有用的评论
这绝对是我想尽快做的事情。
然而,这要求我们很可能迁移到 webpack/rollup 并确保我们提供的包仍然不超过我们的 10kb 预算。
我不能说它什么时候发货,因为我现在也在做其他一些事情。