如何在构建期间将Aurelia软件包部署到另一个目录?

时间:2016-09-20 07:53:05

标签: aurelia aurelia-cli aurelia-framework

我正在研究Aurelia Sample app,并希望将构建输出( vendor-bundle.js app-bundle.js )部署到{ {1}}而不是默认的www-root\scripts目录。所以我尝试将 aurelia.json 修改为:

scripts

这确实导致捆绑文件输出到... "testFramework": { "id": "jasmine", "displayName": "Jasmine" }, "build": { "targets": [ { "id": "web", "displayName": "Web", "output": "www-root\\scripts" } ], "loader": { ... ,但是因为我为我的apllication定义了一个 HTTP.SYS 别名,例如登陆网址为:http://localhost/MyAlias/当我尝试浏览应用时,它会尝试从www-root\scripts而不是http://localhost/MyAlias/www-root/scripts/app-bundle.js加载 app-bundle.js 。< / p>

vendor-bundle.js 但是可以从以下网址正确下载:http://localhost/MyAlias/scripts/app-bundle.js

我无法弄清楚要修改的内容,以便从正确的路径获取 app-bundle.js

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:8)

您可以创建自定义gulp任务,以便在构建过程结束时将捆绑的应用程序复制到www-root文件夹中。 选择此方法后,无需更改build.targets中的aurelia.json

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

....

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 :(得分:4)

如果有人来这里寻找清理aurelia-cli项目的根目录的方法,这里有一个方法可以使用RequireJS或SystemJS加载器直接构建到您选择的位置:

  1. 创建一个输出目录,我们称之为OUTPUT
  2. <Button android:id="@+id/btn_on_off" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="activar" android:textColor="#ffffff" android:textStyle="bold" android:theme="@style/**MY_STYLE_B**" /> index.html移至OUTPUT
  3. 打开favicon.ico并修改以下内容:

    aurelia_project/aurelia.json
  4. 使用"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" }, 进行测试,您应该好好去!