RequireJS没有在webjars中找到模块

时间:2018-01-05 11:35:20

标签: spring-boot requirejs webjars

我正在使用Maven,Spring Boot,WebJars和RequireJS开发一个Web应用程序。我有一个问题,RequireJS没有找到一些JavaScript模块。我已经成功配置了Spring Boot和RequireJS,并且9个模块中的7个正确加载了两个未加载的模块:crossroads和requirejs-i18n。

我在我的pom中包含了两个网络广告罐:

    <dependency>
        <groupId>org.webjars.bower</groupId>
        <artifactId>requirejs-i18n</artifactId>
        <version>2.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>crossroads.js</artifactId>
        <version>0.12.0-1</version>
    </dependency>

在我自己的模块中,我尝试加载十字路口和requirejs-i18n作为这样的依赖:

define(['jquery',
    'signals',
    'Hasher',
    'crossroads'], function ($, signals, hasher, crossroads) {...

在这个例子中,jquery,signals和Hasher加载但十字路口没有,我在浏览器控制台中看到了这一点:

Loading failed for the <script> with source http://localhost:8080/js/crossroads.js.js

当我尝试加载requirejs-i18n时,我看到了:

Loading failed for the <script> with source http://localhost:8080/js/requirejs-i18n.js

其他模块加载得很好:

GET http://localhost:8080/webjars/Hasher/1.2.0/hasher.js

有什么想法吗?

我设法通过改变

中的maven依赖来解决十字路口的问题
<dependency>
   <groupId>org.webjars</groupId>
   <artifactId>crossroads.js</artifactId>
   <version>0.12.0-1</version>
</dependency>

<dependency>
   <groupId>org.webjars.npm</groupId>
   <artifactId>crossroads</artifactId>
   <version>0.12.2</version>
</dependency>

requirejs-i18n仍然无法加载,我尝试过这样使用它:

define(['i18n!nls/messages'], function(messages){

和这个

define(['requirejs-i18n!nls/messages'], function(messages){

2 个答案:

答案 0 :(得分:0)

好的,所以我通过这样做解决了这个问题;

require.config({
   paths: {
      'i18n' : '/webjars/requirejs-i18n/i18n',
   }
});

但我不确定这是否是正确的解决方案

答案 1 :(得分:0)

你也可以这样做:

require.config({
    paths: {
        "i18n": webjars.path("requirejs-i18n", "i18n")
    }
});