2

是否可以在不需要修改 JavaScript 文件的情况下使用 Dojo 构建?

文章dgrid and Dojo Nano Build提供了创建构建的说明,但它需要在 JavaScript 文件中添加以下行,以初始化应用程序:

require(['dgrid/dgrid'], function () { 

(用您的构建模块名称替换“dgrid/dgrid”)。

但是,对于自己的模块使用build的时候是非常有问题的,因为在开发模式下当然不能包含带有自己层的require,否则对自己的模块所做的修改是不可见的。但在生产模式下,必须添加这条线。

因此,要么您必须在生产构建之前手动修改文件,要么编写一个在构建期间修改文件的脚本。两者都非常容易出错。

有没有更好的方法来达到这个结果?Dojo 是否可以识别已提供并应该使用构建,而不是单独加载每个模块?

4

1 回答 1

2

以下代码行可以包含在开发和生产模式中。

require(['dgrid/dgrid'], function () {

我在此处的回答中描述了原因。

您需要做的是根据什么环境来不同地配置 Dojo。

在我写的一篇博文中,我更详细地描述了这一点。下面对帖子进行总结:

我创建了三种模式:生产、未压缩和开发。

发展

开发代码时,我会将 js 源链接到 Web 服务器,开发模式将指向 dojo.js 文件和原始 css 文件。浏览器将使用 xhr 加载我需要的模块。我指向导入其他 css 文件的顶级 css 文件。结果是会向服务器发出大量请求,并且页面的加载会明显变慢。好处是您无需进行完整构建即可查看开发更改。

生产

生产模式将主 dojo 文件指向dojo.js使用构建工具构建的文件。我还<script>为页面中需要的其他图层创建元素。我将 css 指向构建工具已内联导入的 css 的已构建 css 文件。页面加载很快,但很难调试

未压缩

类似于生产,但我指向 .uncompressed.js 文件。我们软件的发布版本中提供了生产和未压缩版本。在尝试对生产环境中的问题进行故障排除时,我使用 uncompressed。这种模式的价值正在减少,因为开发人员工具更好地支持压缩 javascript(即源映射等)

服务器端

默认模式是生产,但我使用查询参数来切换模式。我还将当前模式存储在会话中,因此我只需设置一次模式即可更改它。后续页面将以更改的模式运行,直到我将其更改回来。

是此代码的 java 实现。

于 2013-07-22T12:48:27.833 回答