2013-07-22 60 views
2

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

文章dgrid and Dojo Nano Build提供了指令创建构建,但它需要添加以下行JavaScript文件,初始化程序:

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

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

但是,使用建立自己的模块时,它是非常有问题的,因为,当然,在开发模式有自己的层需要不能列入,否则做出自己的模块修改将不可见。但在生产模式下,必须添加此行。

所以,要么你必须手动修改文件之前生产版本,或者写一个脚本,将在生成过程中修改文件。两者都非常容易出错。

有没有更好的办法来达到这种效果? Dojo是否有可能认识到构建是提供并应该使用的,而不是分别加载每个模块?

回答

2

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

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

我描述了为什么在我的回答here

你需要做的是配置不同的道场基于什么样的环境。

blog post是我写的,我描述这个更详细。下面总结的帖子:

创建三种模式:生产,无压缩和发展。

发展

在开发代码,我会链接到Web服务器和开发模式将指向的dojo.js文件和原始的css文件(S)的JS源。浏览器将加载我需要使用xhr的模块。我指向导入其他css文件的顶级css文件。其结果是,很多请求将被发送到服务器,并且页面的加载速度将明显变慢。好处是你可以看到发展变化,而不必做一个完整的构建。

生产

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

未压缩

类似产品,但我指向.uncompressed.js文件。 Production和Uncompressed可以在我们软件的发布版中找到。在尝试解决生产环境中的问题时使用未压缩。这种模式的价值越来越少的开发工具更好地支持JavaScript的压缩(即源地图等)

服务器端

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

Here是此代码的java实现。

+0

它工作得很好。我不必更改任何JS甚至HTML文件。如果构建不可用,则在控制台中只有404可见,并且所有内容都以开发模式加载。 –

+0

但是,当从WebSphere加载应用程序时,它不适用于IE9。在构建文件的某处出错:属性'dir'未定义。无论如何,我必须要求它。 –

+0

不得不把需要?如果构建为一个浏览器而不是另一个浏览器工作,而不是构建的问题以及构建的代码的问题,但没有任何细节,这很难说。 –

相关问题