requirejs:如何命名子模块foo.bar而不是foo / bar?

时间:2013-09-17 20:58:54

标签: javascript requirejs

我可以将某个包bar的子模块foo知道为requirejs foo/bar,但我能以某种方式让它使用名称{{1}相反? (这与我们之前存在的约定一致,foo.bar模块实际上是bar对象的属性。实际上,所需的名称 foo实际上是将foo.bar的状态反映为bar的属性。)

(当然,foofoo以及下面的所有代码都只是玩具示例。)

bar的内容是:

js/main.js

requirejs.config({ baseUrl: 'js/lib', packages: ['foo'], paths: { ext: '../ext' } }); requirejs(['foo', 'foo/bar'], function(foo, bar) { debugger; } ); define的来电是:

foo/bar.js

如果我将define('foo/bar', ['foo'], function (foo) { return foo.bar = {} }); 的{​​{1}}调用中的第一个参数更改为js/foo/bar.js,则代码仍然会运行,但现在define中的函数会获得'foo.bar' }作为它的第二个参数。 (当然,我仍然可以通过js/main.js访问undefined,因为bar文件已经像以前一样执行了。)


到目前为止,这是一个更全面的解决方案:

目录结构:

foo.bar

HTML:

foo/bar.js

./ JS / main.js

/.
|-- index.html
`-- js
    |-- ext
    |   `-- require.js
    |-- lib
    |   `-- foo
    |       |-- bar.js
    |       `-- main.js
    `-- main.js

./ JS /富/ main.js

<script data-main="js/main.js" src="js/ext/require.js"></script>

./ JS /富/ bar.js

requirejs.config({
  baseUrl: 'js/lib',
  packages: ['foo'],
  paths: { ext: '../ext' }
});

requirejs(['foo', 'foo/bar'],
  function(foo, bar) {
    debugger;
  }
);

0 个答案:

没有答案