2016-09-17 69 views
1

HTML starter kit pro为迪朗达尔包含以下咕噜任务优化编译:优化Durandal的构建过程

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文件中。据我所知,杏仁是一种轻量级的替代品,可用于优化文件。

要重现问题,您可以简单地运行顶部链接中提供的“快速入门”。

+0

可能是此链接对您有帮助:http://stackoverflow.com/questions/15684040/durandal-optimizer-references-wrong-path-when-building-it-as-a-post-build-proces –

+0

For你首先关心的是,你有没有试过“removeCombined:true”属性? – nikhil

+0

@nikhil是的,它似乎没有任何效果,虽然 – Johan

回答

1

是的,你说得对,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目录获得的唯一错误。

希望它有帮助。

+0

当你想到它时很明显。谢谢你的第二套眼睛! – Johan