在一个春季启动的应用程序中,我获得了几个webjar(基本上是jar包中的javascript,css和资源文件),所有这些都在maven pom文件中指定.
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>
春季启动有助于公开每个脚本路径.例如,引导程序可以使用
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()获得几个带有其require.config()的webjars-requirejs.js文件,我将无法确定它的范围以及如何解决.
如何在一个自定义javascript文件中处理这些webjars-requirejs.js文件?
解决方法:
webjars-requirejs.js文件是旧版工件.较新的RequireJS元数据位于WebJar的pom.xml文件中. webjars-locator库具有一些RequireJS实用程序,可轻松使用此元数据. WebJar Docs包含有关如何使用此功能的一些详细信息.