我应该如何防止RequireJS中的模块命名冲突?

时间:2015-03-23 17:06:31

标签: javascript requirejs

我有三个具有简单模块名称的RequireJS模块(例如api),这些模块将用于遵循基于插件的体系结构的页面,因此我无法完全控制其他模块的定义。所以,我想创建一个唯一的非全局“命名空间”,以确保其他一些代码尚未定义api并发生命名冲突。

例如,我不会使用define('api'),而是使用define('myns.api')或类似的东西。

我该如何解决这个问题?

这是我所指的project。另外,我正在使用Grunt来构建我的项目。

1 个答案:

答案 0 :(得分:0)

这是一个比表面看起来更深刻的问题,没有一个好的答案。

像NPM这样的包管理器经常设置类似于username.projectname.modulename的命名空间。

对于ActionScript和C#等命名空间语言,通常使用类似于com.example.module的项目域

在其他很难提出名称的情况下,会生成GUID并用于唯一标识模块。