2016-09-20 45 views
5

我工作的Aurelia Sample app,並希望部署生成輸出(廠商bundle.jsAPP-bundle.js)到www-root\scripts而不是默認的scripts目錄。所以,我想修改aurelia.json的樣子:如何在構建期間將Aurelia捆綁包部署到另一個目錄?

... 
"testFramework": { 
    "id": "jasmine", 
    "displayName": "Jasmine" 
    }, 
    "build": { 
    "targets": [ 
     { 
     "id": "web", 
     "displayName": "Web", 
     "output": "www-root\\scripts" 
     } 
    ], 
    "loader": { 
... 

這的確導致了包文件被輸出到然而www-root\scripts,因爲我已經例如定義的HTTP.SYS別名我apllication登陸URL是:http://localhost/MyAlias/當我嘗試瀏覽它嘗試加載app-bundle.js的應用程序時:http://localhost/MyAlias/www-root/scripts/app-bundle.js而不是http://localhost/MyAlias/scripts/app-bundle.js

廠商bundle.js但是正確的下載:http://localhost/MyAlias/scripts/vendor-bundle.js

我無法弄清楚修改了什麼,使這個獲得APP-bundle.js從正確的路徑。

任何幫助,非常感謝。

回答

7

您可以創建一個自定義的gulp任務,以便在構建過程結束時將捆綁的應用程序複製到www-root文件夾中。 通過選擇此方法,不需要更改aurelia.json中的build.targets

1.使用aurelia-cli生成器[documentation]生成新任務。

像這樣的東西如下:

aurelia_project/tasks/dist.js|ts

import * as gulp from 'gulp'; 
import * as project from '../aurelia.json'; 

export default function dist() { 
    return gulp.src(project.dist.sources, { "base" : "." }) 
     .pipe(gulp.dest(project.dist.output)); 
} 

2.我覺得這是更好地對發佈一個單獨的配置部分,所以你就可以添加其他文件和文件夾以及。

aurelia_project/aurelia.json

... 

"dist": { 
    "output": "www-root", 
    "sources": [ 
     "./scripts/**/*", 
     "./index.html", 
     "<other_resource_to_copy>", 
     ... 
    ] 
}, 

.... 

插入在建設過程結束這項新任務。

aurelia_project/tasks/build.js|ts

export default gulp.series(
    readProjectConfiguration, 
    ... 
    writeBundles, 
    dist // here goes our custom task 
); 

4.哦,它的工作原理與au run --watch以及! :)

如果你想嘗試一下,我有一個工作示例here

+1

這太好了!奇蹟般有效。只是一個簡短的問題,任何方式來排除'require.js'和'text.js'或其他我可能想要被複制的東西?對不起,這裏有一個完整的* gulp *處女! – MaYaN

+0

我還沒試過,但我相信你可以。查看「gulp glob選項」:https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpsrcglobs-options。例如[「./scripts/**/*」,「!./ scripts/require.js」] –

+0

它表示'無效的glob參數',但稍後我會繼續。謝謝。 – MaYaN

2

如果有人來這裏尋找一種方式來清理的奧裏利亞-CLI項目的根目錄下,下面是直接構建到您選擇的使用RequireJS或SystemJS裝載機位置的方法:

  1. 使輸出的目錄,讓我們把它輸出
  2. 移動index.htmlfavicon.ico輸出
  3. 打開aurelia_project/aurelia.json和編輯以下:

    "build": { 
        "targets": [ 
         { 
          "index": "OUTPUT/index.html", 
          "baseDir": "OUTPUT", 
          "baseUrl": "scripts", 
          "output": "OUTPUT/scripts" 
         } 
        ], 
        ... 
    } 
    ... 
    "platform": { 
        "index": "OUTPUT/index.html", 
        "baseDir": "OUTPUT", 
        "baseUrl": "scripts", 
        "output": "OUTPUT/scripts" 
    }, 
    
  4. au run進行測試,你應該很好走!
相關問題