你如何管理你的DojoX代码?

时间:2008-11-15 16:12:24

标签: javascript version-control dojo

您如何管理生产应用程序中DojoX代码或小部件的使用?

Dojo Toolkit由Core,Dijit和DojoX组成。作为扩展工具包的新想法的孵化器,DojoX代码和小部件具有不同程度的不稳定性。

DojoX代码,如 QueryReadStore (用于从服务器获取批量数据)或小部件,如 Grid (用于使用用户界面网格)组件)不包含在Core或Dijit中。但它们的功能足以在某些情况下使用,需要注意“开发人员要小心”,因为在将来的Toolkit版本中,API或源代码树中的组件位置可能会发生变化。另一个问题是,您可能必须调整正在使用的DojoX组件才能在您的环境中正常运行,因为代码中还没有高度的健壮性。

那么,您如何确保随着您使用的DojoX组件的发展,您的应用程序保持平稳的轨道?

2 个答案:

答案 0 :(得分:4)

这可能是一个显而易见但更具参与性的解决方案......但是:参与其中!它实际上是一次熟悉Dojo整体功能的最佳方法之一,教授了很多优秀的JS-foo,并确保您拥有关于特定模块未来的内部信息。大多数DojoX都是社区贡献的,旨在实现稳定性和实用性。审查,测试和黑客攻击代码的人越多,成功和稳定的可能性就越大。

此致 彼得希金斯

答案 1 :(得分:3)

有几种方法可以做到:

  • 坚持使用Dojo的一个版本并始终如一地使用它。
  • 将修改后的代码移动到您自己的命名空间并从那里包含它。
    • 实际上它是现有DojoX模块的分支。所有代码同步和后端移植都是您的责任。
    • 注意Dojo的其余部分 - 如果它以破坏分叉版本的方式发生变化,那么也准备好修补你的模块。
  • 在某处复制已修改的文件,并在需要原始文件之前包含/要求它们。

为了说明后一种技术,想象一下我想在dojox / charting / abc.js中修补一个文件:

dojo.provide("dojox.charting.abc");
// the rest of the file
...

我可以将它复制到我的目录中,例如my / patched_abc.js,并使它看起来像这样:

dojo.provide("my.patched_abc");
// now I include the rest of the file with my modifications

dojo.provide("dojox.charting.abc");
// the rest of the file
...

在我使用dojox.charting的代码中,我将其包括在内:

dojo.require("my.patched_abc");
// now I can include dojox.charting,
// which will use my patched dojox.charting.abc module

dojo.require("dojox.charting.Chart2D");
// the rest of the file
...

请小心避免使用循环“必填”声明。

此技术适用于后端端口和次要自定义。如果您的更改比此更广泛,则应考虑编写自己的模块。