我如何管理非amd依赖与需要的JS

How can I manage non-AMD dependencies with Require JS?

本文关键字:依赖 JS amd 何管理 管理      更新时间:2023-09-26

我尝试管理一个没有amd支持的库,它依赖于3个其他js文件(https://github.com/augustl/js-epub)。

我必须按照以下顺序包含这些文件:

<script type="text/javascript" src="zip/jszip.js"></script>
<script type="text/javascript" src="zip/jszip-load.js"></script>
<script type="text/javascript" src="zip/jszip-deflate.js"></script>
<script type="text/javascript" src="zip/jszip-inflate.js"></script>

目前我试图通过shim来处理依赖关系,像这样:

shim {
      "zip/jszip": {
        "deps": ["zip/jszip-deflate", "zip/jszip-inflate", "zip/jszip-load"],
        "exports": "JSZip"
      }
}

但是脚本以错误的顺序包含。我怎么能做到呢?

向hijolan致以最诚挚的问候

deps依赖项数组定义了需要在加载之前加载的脚本。你的shim声明是错误的:你需要shim依赖于jszip的模块,并将jszip列为它们的依赖项。

shim: {
  "zip/jszip": {
    "deps": [],
    "exports": "JSZip"
  },
  "zip/jszip-load": {
    "deps": ["zip/jszip"],
    "exports": "JSZip"
  },
  "zip/deflate": {
    "deps": ["zip/jszip"],
    "exports": "JSZip"
  },
  "zip/inflate": {
    "deps": ["zip/jszip"],
    "exports": "JSZip"
  }