构建层不包含dojo/**/*。js文件

构建层不包含dojo/**/*。js文件

问题描述:

我正在尝试为我的项目创建一个图层。我希望图层包含 myProject/controllers/MainApp及其在myProject 包中的所有依赖关系。我不想在我的图层中包含任何dojo,dijit或其他包。构建层不包含dojo/**/*。js文件

这是我到目前为止有:

var profile = (function() {     

    var locationPrefix = "something"; 
    return {         

     basePath: "../src", 
        releaseDir: "../dojoRelease", 
        releaseName: "lib", 
        action: "release", 
     packages: [ 
      { 
       name: 'dojo', 
       location: locationPrefix + '/dojo/dojo' 
      }, { 
       name: 'dijit', 
       location: locationPrefix + '/dojo/dijit' 
      }, { 
       ... 
      }, { 
       name: 'myProject', 
       location: 'myProject', 
       destLocation: 'myProject' 
      } 
     ], 

     layers: {           
      "myProject": { 
       include: ["myProject/controllers/MainApp"], 
       // QUESTION: How can I use exclude to not include all dojo modules? 
       // tried several things but none seem to work. Can't find any doc 
       // on what exclude takes as input. 
       // exclude: ["dojo/dojo"], 
       boot: false, 
       customBase: true 
      } 
     }     
    }; 
})(); 

的问题是,当我看着我的main.js.uncompressed.js它contins很多事情不是myProject 。这些都是在main.js.uncompressed.js文件中的第几行:

require({cache:{ 
'dojo/parser':function(){ 
define([ 
    "require", "./_base/kernel", "./_base/lang", "./_base/array", "./_base/config", "./dom", "./_base/window", 
     "./_base/url", "./aspect", "./promise/all", "./date/stamp", "./Deferred", "./has", "./query", "./on", "./ready" 
], function(require, dojo, dlang, darray, config, dom, dwindow, _Url, aspect, all, dates, Deferred, has, query, don, ready){ 

    // module: 
    //  dojo/parser 

    new Date("X"); // workaround for #11279, new Date("") == NaN 

    // data-dojo-props etc. is not restricted to JSON, it can be any javascript 
    function myEval(text){ 
     return eval("(" + text + ")"); 
    } 

用于源:

  • 的dijit/_Widget
  • 道场/有状态
  • 的dijit /破坏的
  • dijit/_OnDijitClickMixin
  • dijit/a11yclick

和许多其他文件也显示在main.js.uncompressed.js文件中。

如何限制main.js.uncompressed.js文件只能是我项目中的文件 ?谢谢!


更新:我试图从包的列表中删除道场,dijit的,等等。这会导致main.js.uncompressed.js或多或少地正确生成,编译器会在生成缩小文件时挂起。也有许多象这样的错误:

error(311) Missing dependency. module: myProject/controllers/someFile; dependency: dojo/_base/declare 
error(311) Missing dependency. module: myProject/controllers/someFile; dependency: dojo/_base/lang 
error(311) Missing dependency. module: myProject/controllers/someFile; dependency: dojo/Deferred 

的问题是,当我看着我的main.js.uncompressed.js它 contins很多事情不是myProject的。

他们可能不会在 myProject的但你确定你没有利用任何地方的任何人?例如,在包含它的输出中,它显示someFile正在使用dojo/_base/declare函数。如果您在someFile模块的开头使用声明,那么您需要在图层中使用dojo来运行它。

error(311) Missing dependency. module: myProject/controllers/someFile; dependency: dojo/_base/declare 
error(311) Missing dependency. module: myProject/controllers/someFile; dependency: dojo/_base/lang 
error(311) Missing dependency. module: myProject/controllers/someFile; dependency: dojo/Deferred 

上找不到什么排除作为输入的任何文档。

这是相同的格式包括 - 串模块阵列 - 在这里看到: http://dojotoolkit.org/documentation/tutorials/1.10/build/ http://dojotoolkit.org/reference-guide/1.10/build/

使用引导属性也将包含在你的层一些道场代码,你告诉使你的图层成为可启动的,所以它必须包含用于模块加载的dojo代码,让你加载其他模块。