Dexie.js: dist/modern目录是什么
Dexie.js: What is the dist/modern directory
刚刚下载 Dexie.js-3.2.1.zip。与我使用的先前版本不同,它包含一个 dist/modern 目录。此目录中的文件与 dist 目录中的文件有何不同?
它们符合 ES2018 而不是 ES5。 modern 子文件夹包含一个缩小版本和一个 non-minified 版本的 dexie,采用较新的 ecmascript 模块格式 (.mjs),还包含旧浏览器无法读取的“现代”语法,例如箭头函数。后者是它们与直接在 dist 下的 dexie.mjs 的不同之处,dist 具有除模块格式之外的遗留 JS 语法。 modern下的,既有现代模块格式,又有JS语法。
如果您不关心 Internet Explorer 的兼容性,您可以选择使用现代版本,但需要以不同方式包含它们:
<script type="module">
import Dexie from 'path-to-download/dist/modern/dexie.min.mjs';
const db = new Dexie('myDB');
...
</script>
您还可以使用导入地图:
<script type="importmap">
{
"imports": {
"dexie": "path-to-download/dist/modern/dexie.min.mjs"
}
}
</script>
<script type="module">
import Dexie from 'dexie';
const db = new Dexie('myDB');
...
</script>
现代版本的 dexie 也是从它的 package.json 中引用的,这样像 webpack 这样的打包器就会找到它并得到它的 non-transpiled 版本。
使用现代版本的好处是体积更小,理论上执行速度更快,内存消耗优化。但我认为这些事情并没有那么重要。您永远不会注意到旧版本和现代版本之间的性能差异。
刚刚下载 Dexie.js-3.2.1.zip。与我使用的先前版本不同,它包含一个 dist/modern 目录。此目录中的文件与 dist 目录中的文件有何不同?
它们符合 ES2018 而不是 ES5。 modern 子文件夹包含一个缩小版本和一个 non-minified 版本的 dexie,采用较新的 ecmascript 模块格式 (.mjs),还包含旧浏览器无法读取的“现代”语法,例如箭头函数。后者是它们与直接在 dist 下的 dexie.mjs 的不同之处,dist 具有除模块格式之外的遗留 JS 语法。 modern下的,既有现代模块格式,又有JS语法。
如果您不关心 Internet Explorer 的兼容性,您可以选择使用现代版本,但需要以不同方式包含它们:
<script type="module">
import Dexie from 'path-to-download/dist/modern/dexie.min.mjs';
const db = new Dexie('myDB');
...
</script>
您还可以使用导入地图:
<script type="importmap">
{
"imports": {
"dexie": "path-to-download/dist/modern/dexie.min.mjs"
}
}
</script>
<script type="module">
import Dexie from 'dexie';
const db = new Dexie('myDB');
...
</script>
现代版本的 dexie 也是从它的 package.json 中引用的,这样像 webpack 这样的打包器就会找到它并得到它的 non-transpiled 版本。
使用现代版本的好处是体积更小,理论上执行速度更快,内存消耗优化。但我认为这些事情并没有那么重要。您永远不会注意到旧版本和现代版本之间的性能差异。