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

是否可以在不修改JS文件的情况下使用Dojo构建?,dojo,dojo-build,Dojo,Dojo Build,不需要修改JavaScript文件就可以使用Dojo构建吗 本文提供了创建构建的说明,但需要在JavaScript文件中添加以下行,这将初始化应用程序: require(['dgrid/dgrid'],函数(){ (将“dgrid/dgrid”替换为生成模块名称) 然而,在为自己的模块使用构建时,这是非常有问题的,因为,当然,在开发模式中,不能包括对自己的层的需求,否则对自己的模块所做的修改将不可见。但是在生产模式中,必须添加这一行 因此,您必须在生产构建之前手动修改该文件,或者编写脚本在构建

不需要修改JavaScript文件就可以使用Dojo构建吗

本文提供了创建构建的说明,但需要在JavaScript文件中添加以下行,这将初始化应用程序:

require(['dgrid/dgrid'],函数(){
(将“dgrid/dgrid”替换为生成模块名称)

然而,在为自己的模块使用构建时,这是非常有问题的,因为,当然,在开发模式中,不能包括对自己的层的需求,否则对自己的模块所做的修改将不可见。但是在生产模式中,必须添加这一行

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


有没有更好的方法来实现这一结果?Dojo是否有可能认识到构建是提供的并且应该使用,而不是单独加载每个模块?

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

require(['dgrid/dgrid'], function () {
我在回答中描述了原因

您需要做的是根据环境的不同配置Dojo

在我写的一篇文章中,我更详细地描述了这一点。下面总结了这篇文章:

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

发展

在开发代码时,我将js源代码链接到web服务器,开发模式将指向dojo.js文件和原始css文件。浏览器将使用xhr加载我需要的模块。我指向导入其他css文件的顶级css文件。结果是,将向服务器发出大量请求,页面加载速度将明显减慢。好处是,您可以在不必进行完整构建的情况下看到开发更改

生产

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

未压缩的

与生产类似,但我指的是.uncompressed.js文件。我们的软件发布版本中提供了生产和未压缩。我在尝试解决生产环境中的问题时使用uncompressed。随着开发人员工具更好地支持压缩javascript,此模式的价值正在下降(即源地图等)

服务器端

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


是这段代码的java实现。

它工作得非常好。我不需要更改任何JS甚至HTML文件。如果构建不可用,控制台中只有一个404可见,所有内容都在开发模式下加载。但是,当从WebSphere加载应用程序时,它在IE9上不工作。构建文件中的某个地方出错:property'dir'未定义。我必须将其放在require中。必须将什么放在require中?如果构建适用于一个浏览器而不是另一个浏览器,那么它可能与构建和正在构建的代码无关,但没有任何细节,很难说。通过require放置加载层。我在单独的问题中发布的代码: