如何在没有 browserify 的情况下在浏览器中使用 bluebird-q?

How can I use bluebird-q in browser without browserify?

我想在浏览器 JS 应用程序中使用 bluebird-q (https://github.com/petkaantonov/bluebird-q) 作为 Q 的 shim。这不可能开箱即用,因为 bluebird-q 库代码以 2 NodeJS 样式开头,需要:

var Promise = require("bluebird/js/main/promise")();
var scheduler = require("bluebird/js/main/schedule");

这2个require不能被整个库的require代替(https://github.com/petkaantonov/bluebird/tree/v2.10.2#for-library-authors):

var Promise = require("bluebird");

Browserify 解决了这个问题,但我认为这个解决方案不够方便:它需要构建步骤,使代码的可读性降低,一些静态代码扫描器无法按预期使用浏览器代码和最重要的 bluebird 和 bluebird -q 不能作为单独的脚本文件引用。

关于这个话题的两个问题:

1) 整个 bluebird 库不能按原样包含到 bluebird-q 中的原因是什么?

2) 没有browserify在浏览器中使用bluebird-q是否有更优雅的解决方案?

P.S.: 我知道 bluebird 本身是为使用 browserify 的浏览器构建的:这个构建已经过适当的测试。 bluebird-q 没有官方的 browserify 版本。

至于现在,该库的浏览器版本已附加到 npm 包中。可以在这里找到:https://unpkg.com/bluebird-q@2.1.1/q.js.