我在使用 weyland 生成的优化代码时遇到了一些问题。这是我到目前为止所做的:
这是我的项目结构:
这是我的 weyland-config 文件:
exports.config = function(weyland) {
weyland.build('main')
.task.uglifyjs({
include:['www/**/*.js', 'www/js/durandal/**/*.js']
})
.task.rjs({
include:['www/**/*.{js,html}', 'www/js/durandal/**/*.js'],
loaderPluginExtensionMaps:{
'.html':'text'
},
rjs:{
name:'libs/require/require', //to deploy with require.js, use the build's name here instead
baseUrl : '../www/js',
paths : {
'text': 'libs/require/text',
'durandal': 'durandal',
'plugins': 'durandal/plugins',
'transitions': 'durandal/transitions',
'knockout': 'empty:',
'bootstrap': 'empty:',
'jquery': 'empty:'
},
inlineText: true,
optimize : 'none',
pragmas: {
build: true
},
stubModules : ['text'],
keepBuildDir: true,
out:'../www/js/main-built.js'
}
});
}
这是我在 index.html 文件中添加的内容,用于运行生成的文件,而不是我创建的文件:
<script src="js/main-built.js"></script>
我也尝试过使用:
<script data-main="js/main-built" src="js/libs/require/require.js"></script>
这是我之前的:
<script data-main="js/main" src="js/libs/require/require.js"></script>
在命令行上运行 weyland build 后,生成的主构建文件没有任何错误。
如果我尝试运行应用程序,则应用程序会在开始屏幕上冻结,就好像永远不会调用 app.start() 方法并且不会显示任何错误一样。
我已经检查了 chrome 调试工具,客户端收到了主构建的文件,它似乎什么也没做。
我究竟做错了什么?
编辑
我还尝试使用 almond-custom 构建并添加此附加配置:
insertRequire:['main']
wrap:true
当我尝试运行该应用程序时,出现此错误:
Uncaught Error: main missing durandal/app
在我的主要失败中,我正在加载“durandal/app”抛出的 require js,由于某种原因它再也找不到它了