如何从 Webjar 解析多个 RequireJS 配置文件

How to resolve multiple RequireJS config files from Webjars

本文关键字:RequireJS 配置文件 Webjar      更新时间:2023-09-26

在一个 spring-boot 应用程序中,我获得了几个 webjar(基本上是 jar 包中的 javascript、css 和资源文件),所有这些都在 maven pom 文件中指定。

绒球.xml

<dependencies>
...
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>requirejs</artifactId>
        <version>2.1.16</version>
    </dependency>
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>angularjs</artifactId>
        <version>${angularjs.version}</version>
    </dependency>
...
</dependencies>

Spring-boot 通过公开每个脚本路径来提供帮助。例如,引导程序可以使用

webjars/bootstrap/bootstrap-version/bootstrap.js

好的,这很酷,我现在可以在我的 html 和 js 文件中获取每个脚本。

但事情是这样的,每个 webjar 都有自己的 webjars-requirejs.js 文件,其中包含模块公开以及路径和依赖项解析的配置。

我相信它的目的是被使用,而不是在某些用户自定义 require.config 中复制

webjars/bootstrap/version/webjars-requirejs.js

/*global requirejs */
// Ensure any request for this webjar brings in jQuery.
requirejs.config({
paths: { 
    "bootstrap": webjars.path("bootstrap", "js/bootstrap"),
    "bootstrap-css": webjars.path("bootstrap", "css/bootstrap")  
  },
  shim: { "bootstrap": [ "jquery" ] }
});

问题

注意到webjars.path()方法,我无法弄清楚它的范围以及如果我从我自己的自定义require.config()中获取几个 webjars-requirejs.js 文件及其require.config(),它将如何解决。
如何在一个自定义 JavaScript 文件中操作这些 webjars-requirejs.js 文件?

webjars-requirejs.js文件

是遗留项目。 较新的 RequireJS 元数据位于 WebJar 的pom.xml文件中。 webjars-locator库有一些 RequireJS 实用程序,可以轻松使用此元数据。 WebJar 文档包含有关如何使用它的一些详细信息。