1

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'
        }
    }
}

我对此有一些担忧,需要您帮助解决:

  1. 脚本文件冗余。构建过程会在lib文件夹中保存 jQuery、bootstrap 等脚本。为什么?如果你看一下内置build/app/main.js的是已经添加了所有这些脚本。这导致我提出以下问题:

  2. 如果我删除该文件夹,一切正常,除了我在控制台中lib得到一个事实。require is not defined代码仍然在寻找lib/require/require.js可以通过简单地添加它来解决的问题。然而,这不almond就是一切吗?它包含在构建的build/app/main.js文件中。据我所知,Almond 是一个轻量级的替代品,用于在优化文件中使用。

要重现问题,您只需运行顶部链接中提供的“快速启动”即可。

4

1 回答 1

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>

希望能帮助到你。

于 2016-09-23T09:28:30.037 回答