2016-09-17 74 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