优化durandal的构建过程

Optimizing Durandal's build process

本文关键字:过程 构建 durandal 优化      更新时间:2023-09-26

Durandal的HTML starter kit pro包含以下优化构建的基本任务:

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是用于优化文件的轻量级替代品。

要重现这些问题,您可以简单地运行顶部链接提供的"快速开始"。

是的,您是对的,main.js包括运行应用程序所需的一切。您获得require is not defined的原因是因为,如果您仔细查看index.html文件,您会看到index.html引用查找/lib/require文件夹中的文件并通过它加载我们的main.js文件。在index.html下面还有一行被注释了,你可以取消注释,即使你删除了lib目录,它也应该能工作。

在取消注释<script src="app/main.js"></script>行并注释<script src="lib/require/require.js" data-main="app/main"></script>行后删除/lib目录会得到的唯一错误。

希望能有所帮助。