Durandal的HTML starter kit pro包含以下用于优化构建的grunt任务:
durandal: {
main: {
src: ['app/**/*.*', 'lib/durandal/**/*.js'],
options: {
name: '../lib/require/almond-custom',
baseUrl: requireConfig.baseUrl,
mainPath: 'app/main',
paths: mixIn({}, requireConfig.paths, {
'almond': '../lib/require/almond-custom.js'
}),
exclude: [],
optimize: 'none',
out: 'build/app/main.js'
}
}
}
我有一些担心,我需要你的帮助整理:
脚本文件冗余。构建过程将lib
文件夹与jQuery,bootstrap等脚本保持在一起。为什么?如果查看构建的build/app/main.js
,则添加了所有这些脚本。这引出了以下问题:
如果删除lib
文件夹,一切正常,除了我在控制台中获得require is not defined
这一事实。代码仍然会查找lib/require/require.js
,只需将其添加到那里即可解决。但是,这不是almond
的全部内容吗?它包含在构建的build/app/main.js
文件中。据我所知,杏仁是需要在优化文件中使用的轻量级替代品。
要重现这些问题,您只需运行顶部链接中提供的“快速入门”即可。
答案 0 :(得分:1)
是的,你是对的main.js
包含运行应用程序所需的一切。您收到require is not defined
的原因是,如果您仔细查看index.html
文件,您会看到index.html
引用查找/lib/require
文件夹中的文件并加载我们的文件main.js
通过它提交文件。在index.html
注释的下方有另一行,您可以取消注释,即使删除lib
目录也应该可以正常工作。
取消注释/lib
行并发表评论<script src="app/main.js"></script>
后删除<script src="lib/require/require.js" data-main="app/main"></script>
目录所能获得的唯一错误。
希望它有所帮助。