当只在requirejs中声明一次时,模块共享相同的URL

时间:2014-10-15 05:20:45

标签: javascript requirejs typescript

我正在使用requirejs编写应用程序。我编写的一些模块只需加载多个组件以便于访问。当我通过requirejs优化器运行我的应用程序时,这些模块导致以下错误:

The following modules share the same URL. This could be a misconfiguration if that URL only has one anonymous module in it:
F:/nemesis/nemesis/src/nemesis.js: nemesis, nemesis
F:/nemesis/nemesis/src/_nemesis.js: _nemesis, _nemesis
F:/nemesis/nemesis/src/rendering/rendering.js: rendering/rendering, rendering/rendering] }

以下是它定义的每个模块的方式。

nemesis.js

define(["require", "exports", "_nemesis", 'rendering/rendering'], function(require, exports, _nemesis, Rendering) {
    /* Definition code */
});

_nemesis.js

define(["require", "exports", "json!config.json"], function(require, exports, config) {
    /* Definition code */
});

渲染/ rendering.js

define(["require", "exports", "_nemesis", "./shaders", "./primitive", "util/logging/consoleLogger"], function(require, exports, nemesis, Shaders, Render, Logger) {
    /* Definition code */
});

最后这就是我要求配置的方式:

baseUrl: "src/",
name: "<%= pkg.name %>",
paths: {
    text: "../node_modules/text/text",
    json: "../lib/requirejs-plugins/json",
    "config.json": 'empty'
},
out: 'build/<%= pkg.name %>.js',
optimize: 'none'

配置或声明模块错误或我在配置中遗漏了什么?

另外,我们从typescript生成的模块声明。使用typescript编译器的不同参数可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我发现问题出在&#34; config.json&#34;在路径中。将其更改为

config: 'empty:'

使所有内容按预期编译。但是我不确定为什么这会导致我得到的错误或为什么

"config.json" : 'empty:'

不起作用,如果有人能够解释,我将不胜感激。