如何在dojo应用程序构建概要文件中加载json文件
How can I load a json file in the dojo application build profile?
我有以下dojo构建概要文件:
var profile = (function () {
return {
basePath: "./Scripts",
releaseDir: "./bin",
releaseName: "",
action: "release",
mini: true,
layerOptimize: "closure",
optimize: "closure",
cssOptimize: "comments",
localeList: false,
packages: [
{
name: "dojo",
location: "l:/dojo-debug/1.10.4/dojo"
},
{
name: "dijit",
location: "l:/dojo-debug/1.10.4/dijit"
},
{
name: "dojox",
location: "l:/dojo-debug/1.10.4/dojox"
},
...
],
layers: ...
};
})();
现在,我需要从一些json文件中读取值,所以我正在寻找这样的东西:
var profile = (function () {
var versions = SomeHowReadTheContentsOf("ThirdPartyJsLibRootMap.json");
return {
basePath: "./Scripts",
releaseDir: "./bin",
releaseName: "",
action: "release",
mini: true,
layerOptimize: "closure",
optimize: "closure",
cssOptimize: "comments",
localeList: false,
packages: [
{
name: "dojo",
location: "l:/dojo-debug/" + versions["dojo-debug"] + "/dojo"
},
{
name: "dijit",
location: "l:/dojo-debug/" + versions["dojo-debug"] + "/dijit"
},
{
name: "dojox",
location: "l:/dojo-debug/" + versions["dojo-debug"] + "/dojox"
}
...
],
layers: ...
};
})();
就我的一生而言,我没能找到做这件事的方法。
有什么想法吗?
编辑
我的命令行是:node L:'dojo-debug'1.10.4'dojo'dojo.js load=build --profile .'package.profile.js
EDIT2
我添加了一个require
所有属性的控制台日志,结果如下:
has = undefined
isXdUrl = undefined
initSyncLoader = undefined
eval = undefined
signal = undefined
on = undefined
map = undefined
rawConfig = undefined
legacyMode = undefined
async = undefined
waitms = undefined
baseUrl = undefined
idle = undefined
toAbsMid = undefined
toUrl = undefined
log = undefined
trace = undefined
injectUrl = undefined
getText = undefined
nodeRequire = undefined
uid = undefined
cache = undefined
packs = undefined
paths = undefined
aliases = undefined
modules = undefined
execQ = undefined
defQ = undefined
waiting = undefined
mapProgs = undefined
pathsMapProg = undefined
listenerQueues = undefined
computeMapProg = undefined
computeAliases = undefined
runMapProg = undefined
compactPath = undefined
getModuleInfo = undefined
boot = undefined
scopeify = undefined
所以nodeRequire
是存在的,但它的值是undefined
。出了问题。
如果使用NodeJS运行Dojo生成器,则可以通过require.nodeRequire
访问其require
。在构建配置文件中,您还可以访问一个名为selfPath
的变量,该变量是您传递给构建器的配置文件的绝对目录名(类似于节点模块中的__dirname
)。把这两件事放在一起,并假设ThirdPartyJsLibRootMap.json
是您的构建概要文件的兄弟:
var profile = (function () {
var req = require.nodeRequire;
var path = req('path');
var versions = req(path.join(selfPath, 'ThirdPartyJsLibRootMap.json'));
return {
...
};
})();
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Ajax文件加载和<输入>文件加载
- 使用Bootstrap将JSON文件加载到表中
- 将组合JSON文件加载到谷歌地图
- 将文本文件加载到javascript中
- jQuery Mobile样式从另一个文件加载内容
- 使用JavaScript将压缩文本文件加载到字符串中
- 数组在手动写入时有效,但从文本文件加载时无效
- 如何在打印前等待javascript文件加载twitter,并在打印后关闭选项卡
- 从文本文件加载jsondata时出现空白页
- AngularJS:如何使用ng-include将javascript文件加载到部分中
- 使用jquery将html文件加载到html中,用于离线/本地项目
- 从另一个grunt文件加载grunt任务
- 将php文件加载到弹出窗口中,并将php变量发布到该弹出窗口中(使用onclick)
- 如何使用node.js将不同的json文件加载到不同的json对象中
- 将变量从服务器上的外部文件加载到 HTML 文档中
- 节点 - 将 JSON 文件加载到代码中
- 如何使用 JavaScript/jQuery 将 XML 文件加载到 JSP/HTML 页面
- NodeJS和ExpressJS-Javascript文件加载,但CSS文件不加载;t
- D3.js:通过Force Layout从JSON文件加载多个网络