tl;博士,我的问题
对于成功将PockDB和polyfilled es6(和es5)用于较旧浏览器的任何人:
你是怎么做到的?
使用了commonjs/amd/requirejs的哪种实现(如果是这种方法)?
也。。。你有几个孩子吗 <script>
是index.html文件中的标签,还是一体式标签?
非常感谢
背景
我需要在我的web应用程序中使用数据库数据库。
PockDB.com上关于处理常见错误的建议如下:
您是否包括es6 promise shim库?并非所有浏览器都能正确实现es6承诺。
推荐的“es6 promise shim库”的github自述说
要对全局环境进行多边形填充(在节点中或通过commonjs在浏览器中),请使用以下代码段: require('es6-promise').polyfill();
或者 require('es6-promise/auto');
注意:“…或通过commonjs在浏览器中”
因此,我得出结论,我需要commonjs来提供 require
功能。
发布到es6 promise shim库github页面的一个问题是
首先寻找amd,然后是umd 246中的cjs,其中包括
…es6 promise版本自3.3.0以来的变化引入了一种新的umd,它首先检查commonjs env,这与旧的umd不同,旧的umd用于首先检查amd env。
这表明我可以使用amd(更适合浏览器)。
阅读commonjs、amd和requirejs之间关系的首要答案:
amd更适合于浏览器,因为它支持异步加载模块依赖项。
requirejs是amd的一个实现,同时试图保持commonjs的精神(主要在模块标识符中)。
所以也许 RequireJS
?
也。。。
common.js——一个commonjs预处理器,将commonjs风格的应用程序构建到浏览器可以使用的代码中,它说:
步骤3:将模块包括到应用程序中并使用它们
<script src="js/common.js"></script>
<script src="js/foo.js"></script>
<script src="js/bar.js"></script>
<script>
var bar = require('bar');
bar.doTheThing();
</script>
然而,media.com的这篇文章说:
没有像commonjs这样的模块系统,依赖项必须加载到 <script>
html文件头中的标记或所有代码必须集中在一起,这对于文件加载来说是非常缓慢和低效的。
这些似乎有冲突。
笔记
polyfilling es5似乎非常简单:
简单包括 <script src="./es5-shim-master/es5-shim.min.js"></script>
在index.html文件中。浏览器没有抱怨。
暂无答案!
目前还没有任何答案,快来回答吧!