Javascript 使用Dojo构建工具时出现问题&x27;无法加载';尝试使用已编译脚本时出现错误
我一直在关注丽贝卡·墨菲的这篇文章:Javascript 使用Dojo构建工具时出现问题&x27;无法加载';尝试使用已编译脚本时出现错误,javascript,dojo,Javascript,Dojo,我一直在关注丽贝卡·墨菲的这篇文章: 我用我自己的文件结构替换了她的文件结构 运行正常版本的脚本工作正常,但当我使用构建工具编译脚本时,脚本就出现了错误 通过我的Profile.js脚本如何引用文件很可能是一个小问题,但也许这里的人可以帮助我在运行构建工具之前获得正确的设置,以便编译后的文件能够正常工作 我的文件结构如下 /www /资产 /脚本 /课程 build.sh Init.js Load.js Profile.js /Dojo Dojo.js /dojo sdk index.html
我用我自己的文件结构替换了她的文件结构 运行正常版本的脚本工作正常,但当我使用构建工具编译脚本时,脚本就出现了错误 通过我的Profile.js脚本如何引用文件很可能是一个小问题,但也许这里的人可以帮助我在运行构建工具之前获得正确的设置,以便编译后的文件能够正常工作 我的文件结构如下 /www
/资产
/脚本
/课程
build.sh
Init.js
Load.js
Profile.js
/Dojo
Dojo.js
/dojo sdk
index.html 我的index.html文件包含以下代码
var djConfig={
模块路径:{
“Integralist”:“../Classes”
}
};
require('Integralist.Init')
…并且Init.js文件具有以下代码
provide('Integralist.Init')
require('Integralist.Load')
declare('MyApp',null,{
构造函数:函数(配置){
this.version=config.version | |“1.0”;
this.author=config.author | |“未知”;
}
});
var myapp=新的myapp({
作者:“马克·麦克唐纳”
});
警报(myapp.author)
警报(myapp.version);
…最后,Load.js文件中没有任何内容,只有这个
provide('Integralist.Load');
警报(“我是Load.js文件”);
…这一切都很顺利。当我加载index.html时,我收到3条警告消息,非常棒
当我尝试运行构建工具时,问题就出现了
通过Mac OSX,我找到/Classes/目录并运行'sh build.sh',而/Classes/目录中的build.sh文件包含以下代码
cd../../../dojo sdk/util/buildscripts
./build.sh profileFile=../../../../Assets/Scripts/Classes/Profile.js releaseDir=../../../../Assets/Scripts/Release
…现在,在运行构建工具后,我在/Scripts/目录中创建了一个新的/Release/目录,该/Release/目录包括
/www/资产
/脚本
/释放
/积分学家
/课程
Init.js
Init.js.uncompressed.js
/dojo
--加载dojo相关文件--
…然后,我创建了一个名为index-release-version.html的单独索引文件,并按照本文的建议更改了脚本代码,因此看起来像这样
require('Integralist.Init')
…从这里我得到以下错误
加载资源失败:服务器响应状态为404(未找到)
未捕获错误:无法加载“Integralist.Init”;上次尝试“../Integralist/Init.js”
…仅供参考,构建工具使用的Profile.js文件包含以下内容(我认为问题可能就在这里)
依赖项={
stripConsole:'全部',
操作:“清洁,释放”,
优化:“shrinksafe”,
releaseName:“整合器”,
localeList:'en gb',
图层:[
{
名称:“../Classes/Init.js”,
resourceName:“Integralist.Init”,
依赖项:[
“Integralist.Init”
]
}
],
前缀:[
[“整合器”、“./类”]
]
}
非常感谢您的帮助,因为我非常想了解Dojo的工作原理:-)
谢谢
M.在
索引发布版本.html
中是否有该djConfig变量?看起来Dojo正试图在。/Integralist/init.js
中查找init.js,但是您需要告诉它在。/Classes/init.js
中查找
这就是您的模块路径:
{'Integralist':'../Classes'}
在Index.html
在索引发布版本.html
中是否有djConfig变量?看起来Dojo正试图在。/Integralist/init.js
中查找init.js,但是您需要告诉它在。/Classes/init.js
中查找
这就是您的模块路径:
{'Integralist':'../Classes'}
在您的Index.html
中所做的工作,我建议从我的博客帖子()链接到的repo开始工作()--我仔细检查它是否确实工作:)--并对其进行更改,直到您的更改破坏了某些内容,而不是试图马上创建自己的结构
乍一看,我不完全清楚为什么在目录结构中有一个Dojo.js文件(这是基本Dojo库还是其他什么?),但Dojo的其余部分位于其他地方。如果您使用我建议的结构,您可以在使用构建文件时安全地删除djConfig声明,但正如Dan所述,如果您使用的是不同的配置,您可能需要保留它。我建议从我的博客帖子()中链接到的repo工作--我反复检查它是否确实有效:)--并对其进行更改,直到您的更改破坏了某些内容,而不是试图立即创建自己的结构 乍一看,我不完全清楚为什么在目录结构中有一个Dojo.js文件(这是基本Dojo库还是其他什么?),但Dojo的其余部分位于其他地方。如果使用我建议的结构,在使用构建文件时可以安全地删除djConfig声明,但是正如Dan提到的,如果使用不同的配置,可能需要保留它