我正在尝试使用dojo创建一个构建,它尽可能简单.
我安装的唯一软件包是使用bower的Arcgis-js-api:
"dependencies": {
"esri": "arcgis-js-api#3.21.0"
}
我的build.profile.js定义如下:
var profile = {
basePath: "./src",
action: "release",
cssOptimize: "comments",
mini: true,
layerOptimize: "closure",
packages: [
"app",
"dijit",
"dojo",
"dojox",
"dstore",
"dgrid",
"dgrid1",
"xstyle",
"put-selector",
"esri", {
name: "moment",
location: "moment",
main: "moment"
}
],
useSourceMaps: false,
mini: true,
stripConsole: "warn",
selectorEngine: "lite",
layers: [{
"dojo/dojo": {
boot: true,
customBase:true,
include: [
"app/main"
]
}
}]
};
如果我理解构建系统上的dojo文档是正确的,这应该在dojo / dojo.js下创建一个包含所有依赖项的单个输出文件,但是当我使用此配置文件发出构建时,我收到的每个包的文件夹,已定义.
app / main包由一个console.log调用组成:
define([],function(){
console.log("ratzupaltuff");
});
我期望只获得一个非常小的版本,因为我实际上没有使用dojo特定的东西.
我需要更改什么才能获得单个图层的预期结果?在目前的形式下,发布版本仍然是114Mb,这当然太大了.
解决方法:
在“Creating Builds”教程中,它说:
You might be asking yourself “if we build everything we need into a
layer, why do we worry about the rest of the modules?” If you were to
only keep the layer files and not have the rest of the modules
available, you would lose that as an option to keep your application
working without having to do a whole build again to access those
modules.
也就是说,我同意你的意见,能够构建一个只包含层的最小分布会很好 – 因为即使浏览器只能下载dojo / dojo.js层,也不得不分发大100MB目录.
但是,即使构建脚本仅复制了层文件,这些层也可能需要各种资源文件,这些资源文件未在AMD依赖图中声明(例如图像或字体).
在我的dojo项目中,我通常会在构建脚本的末尾手动指定并复制所需的“最小构建”目录.只要它是一个小应用程序,这通常是可管理的.这当然有点烦人且容易出错,所以如果有人知道你要问的更好的方法,我很乐意听到它.
node ../../dojo/dojo.js load=build --profile "$PROFILE" --releaseDir "$disTDIR" $@
# ...
FILES=(
index.html
myapp/resources/myapp.css
myapp/resources/logo.svg
dojo/dojo.js
dojo/resources/blank.gif
dijit/themes/claro/form/images/buttonArrows.png
)
for file in ${FILES[*]}; do
mkdir -p $MINIMAL_disT_DIR/`dirname $file`
cp $disTDIR/myapp/$file $MINIMAL_disT_DIR/$file
done
(文件myapp.css @imports dojo.css等,因此所有CSS都内置在该单个文件中.)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。