2016-09-20 17 views
5

私はAurelia Sample appに取り組んでいますし、代わりにデフォルトscriptsディレクトリのwww-root\scriptsにビルド出力(ベンダーbundle.jsアプリ-bundle.js)を展開したいと思います。私は例えば、私のapllicationためHTTP.SYSエイリアスを定義しているので、実際にしかしwww-root\scriptsに出力するバンドル・ファイルになりビルド中にAureliaバンドルを別のディレクトリに配置する方法はありますか?

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

:だから私は見えるようにaurelia.jsonを変更しようとしましたランディングURLはhttp://localhost/MyAlias/です。アプリをブラウズしようとすると、http://localhost/MyAlias/scripts/app-bundle.jsの代わりにアプリバンドルからhttp://localhost/MyAlias/www-root/scripts/app-bundle.jsがロードされます。私はこれが正しいパスからアプリ-bundle.jsを取得するために変更するかを把握することはできませんhttp://localhost/MyAlias/scripts/vendor-bundle.js

ベンダーbundle.jsはしかし正しくからダウンロードされます。

ご協力いただきありがとうございます。

答えて

7

ビルドプロセスの最後にバンドルされたアプリをwww-rootフォルダにコピーするカスタムgulpタスクを作成できます。 この方法を選択すると、aurelia.jsonbuild.targetsを変更する必要はありません。

aurelia-cliジェネレータ[documentation]を使用して新しいタスクを生成します。

以下、このような何か:私は出版のために別々のconfigセクションを持っている方が良いと思うので、あなたが他のファイルやフォルダを追加することができます

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>", 
     ... 
    ] 
}, 

.... 

3.構築プロセスの最後に、この新しいタスクを挿入します。

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'など何もコピーしないようにする方法はありますか?申し訳ありません完全な*麻薬*処女はここに! – MaYaN

+0

私はまだ試していないが、できると信じている。 「gulp globオプション」を確認してください:https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpsrcglobs-options例えば["./scripts/**/*"、 "!./ scripts/require.js"] –

+0

それは '無効な引数'と言われていますが、後でそれを実行します。ありがとう。 – MaYaN

2

誰でもアウレリア-CLIプロジェクトのルートディレクトリをクリーンアップする方法を探してここに来た場合は、ここでRequireJSまたはSystemJSローダーを使用して、選択した場所に直接構築する方法があります:

  1. 出力用ディレクトリを作成し、のは、それを呼びましょうOUTPUT
  2. 移動index.htmlfavicon.icoaurelia_project/aurelia.jsonオープン

  3. OUTPUTにし、次のように編集します。

    "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でテストしてみるといいですね!