问题标签 [dojo-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dojo-build - 不确定完全分离我的 Dojo 层的最佳方法
嘿,所以我发现有关构建 dojo 的文档在图层周围有点模糊。
对于我的Dojo 1.7+应用程序,我想要一个仅包含 Dojo 的层和一个仅包含我的代码的层,因此我可以将适当的版权/许可标题放在顶部。
查看构建配置文件模板,我看到:
但是当我查看我的'myapp/core'
层 js 文件时,我看到很多出现
我开始通过查找每个出现的 dojo 定义并将其放入 dojo/dojo 层包含列表来解决这个问题,但这似乎不是做层的适当方式,是吗?至少我不能只包含某些包吗?我在这里是不是有很大的误解?
奖励似乎图层属性“copyrightFile”不再有效。是否已弃用或更改?
谢谢
build - Dojo 自定义构建由于缺少资源而出现浏览器错误
我一直在努力学习基于 AMD 的 Dojo 构建系统。到目前为止,我还无法获得一个可用的构建,而不会在浏览器 (FF) 中出现加载错误。
我对如何管理构建有疑问。
我的构建配置文件有一个包部分。我在那里指定的内容似乎与写入目标目录的相同包目录直接相关。这似乎很合适。但是,我还有一个图层部分,它试图仅合并来自 dojo、dijit、dojox 等的“引用”模块。当它们合并到一个 dojo.js 文件中时,我的目标目录中仍然有所有这些库目录. 您是否理解您只是手动进入并删除它们,或者是否有一种自动方法可以在构建过程中将它们删除?
在我的第一层中,我尝试为 dojo、dijit 和 dojox/app/main 构建它。这不会拉取任何资源,例如 dojo/resources/blank.gif 或同一目录中的任何 .css 文件。如何将这些资源文件复制到目的地?我相信 dojo.profile.js (确实表明要复制这些资源)只会影响 dojo 目录。但是由于我正在创建一个结合了 js 模块的自定义 dojo/dijit/dojox 文件,所以没有资源目录。在自定义构建之后,我是否应该手动进入 dojo 目录并将 dojo/resources 目录移出但扔掉 dojo 目录的其余部分?只是不确定如何在构建 dojo/dijit 层时获取 dojo 目录中可访问的依赖 img 和 css 文件,以便与自定义 dojo.js 层文件一起使用。
这是我的构建配置文件:
更新:这是我的目录结构,大约是。基于 dojox/app 结构:
对于构建,我使用基于 dojox/app 示例的 build.sh 文件,但它调用的内部命令行是:
dojo - Dojo build for dijit 创建仅包含未定义的文件;
我正在为我的 dojo 应用程序创建自定义构建。我创建了以下 profile.js:
已dojo/dojo.js
创建,但dijit/dijit.js
仅包含模板文本:
//>>建立
不明确的;
但是,该文件dijit.js.uncompressed.js
已正确创建 (998 KB)。
为什么 dojo 构建会这样?该配置中有什么错误?Dojo 文档非常神秘。
- 编辑 -
指定输出文件似乎有问题。将“dijit/dijit”更改enter code here
为'dojo/dijit'
文件后dijit.js
,将在dojo
子目录中创建。如果我想使用自定义名称创建构建,我也需要在dojo
子目录中创建它。否则创建空文件(仅包含undefined;)
。
dojo - Dojo >= 1.7 build - 删除按进程合并/内联的文件。
Dojo 构建做了 2 件基本的事情:
- 它将 JS 模块合并到层文件和扁平化 NLS 文件中
- 它内联 CSS 导入
但是所有内容都复制到发布文件夹中。
与Dojo 1.7 custom build - How to remove unused files from the release folder问题不同,我想保留构建时“未使用”的模块 - 如果删除,未合并到层中的模块将无法使用。
但我想删除所有被合并/扁平化/内联的资源。
是否可以配置 Dojo 构建以删除已处理的资源,或者插入构建过程来执行此操作?在自定义脚本中这样做对于 CSS 来说并不难,但对于 JS 模块,我需要分析模块依赖关系,这正是构建工具所做的。
dojo - 错误:应用dojo构建后defineAlreadyDefined
我按照http://www.sitepen.com/blog/2012/06/11/dgrid-and-dojo-nano-build/的说明创建了自己的构建配置文件。我为 dojo 创建了引导层:
我还注意到,如果我跳过这一层的定义,则会创建更大的 dojo 包,因此第二层中包含的模块会被复制。
第二层包含 GridX 模块、dijit 控件和 Dojo 中使用的所有其他内容:
应用程序正确启动,它只向分层资源发出请求,但是在 FireBug 控制台中出现错误:
错误:defineAlreadyDefined makeError() dojo-all.js (Zeile 28)
我认为这是因为该declare
模块被加载了两次:首先是使用从 HTML 文件定义的 dojo.js 引导程序。其次,从 dojo-all.js 层,通过 require 动态加载。
基于引用的文章,我的方法中必须有一些流程,或者该文章已适应旧版本的 Dojo(我使用的是 1.9 版本)。
这里有什么错误?应该如何正确定义图层?如何指示 dojo build 不要覆盖 dojo.js 引导程序?或者排除没有正确声明 - 如果是这样,应该如何声明?
dojo - 是否可以在不修改 JS 文件的情况下使用 Dojo 构建?
是否可以在不需要修改 JavaScript 文件的情况下使用 Dojo 构建?
文章dgrid and Dojo Nano Build提供了创建构建的说明,但它需要在 JavaScript 文件中添加以下行,以初始化应用程序:
(用您的构建模块名称替换“dgrid/dgrid”)。
但是,对于自己的模块使用build的时候是非常有问题的,因为在开发模式下当然不能包含带有自己层的require,否则对自己的模块所做的修改是不可见的。但在生产模式下,必须添加这条线。
因此,要么您必须在生产构建之前手动修改文件,要么编写一个在构建期间修改文件的脚本。两者都非常容易出错。
有没有更好的方法来达到这个结果?Dojo 是否可以识别已提供并应该使用构建,而不是单独加载每个模块?
javascript - 从 HTML 标头加载层时,Dojo 构建在 IE9 上失败:属性 'dir' 未定义
我已经制作了一个 dojo 构建,但我希望在启用/禁用构建时具有灵活性,所以我尝试<script>
在 HTML 标头中加载标签:
我没有修改我的 JS 文件。它似乎起作用,但是,有一个问题,但仅限于 IE9,并且仅限于部署在 WebSphere 上的应用程序版本(我已经在 Apache2 上测试过)。问题是,在那个特定的代码片段中,属性“dir”是未定义的:
在搜索了一些类似的问题后(例如:How to prevent "Unable to get value of the property 'dir': object is null or undefined" error when loading pages in IE9),我检测到它可能是一些加载顺序问题。我已经从 HTML 标头中删除了该层,并按以下顺序将其加载到我的 JS 中:
但是,我知道人们正在 HTML 标头中加载构建,例如从这里的主题:Dojo Builds...?现在怎么办?
所以我的问题是,我是不是做错了什么,或者 HTML 标头的技巧不能保证在所有浏览器上都有效?
这是我的构建脚本配置:
这是dojo的build.bat:
javascript - 如何在 dojo 层中使用 require({cache:{?
阅读dojo-build标签后,我发现人们在自定义构建时遇到了许多问题,因此我考虑自己创建构建。但是我无法找到构建 Dojo AMD 层时使用的语法的参考,即:
看起来缓存是一个映射,其中模块名称是键,值是函数,主体是我的模块文件内容。
但我不完全理解下半部分:
这个“*now”也是一个key,但似乎有特殊的解释。我的模块中需要它吗?或者它是可选的?
是最后一部分。正如我想的那样,即使在任何地方都不会直接引用 layer 模块,也必须进行此定义?
javascript - Burning package remapping into dojo build
I am developing a set of modules for others to use using dojo 1.7. All modules are AMD modules and using relative paths within the package. My modules will need to be loaded cross domain, and not interfere with or care about the version of dojo running on the page consuming the modules (Let's assume someone is using. If I understand the documentation correctly, I can specify a packing remapping by doing something like this:
Is there a way to burn the remapping into a dojo build so that using any module in my package will automatically use my dojo/dijit/dojox modules instead of the ones loaded in the local version of dojo? If so, what would the profile look like? If possible, I would like consumers to be able to do something like this:
Thanks in advance for any help.
dojo - Dojo 样板构建警告
今天我克隆了Dojo Boilerplate并且我是build.sh
第一次运行。
像这样的消息"warn(216) dojo/has plugin resource could not be resolved during build-time"
出现在控制台中,我想知道这些警告有多重要。我应该尝试解决它们吗?