如何在ember-cli Brocfile.js中执行post build钩子?

Suk*_*ima 6 ember.js ember-cli broccolijs

我有一个构建到dist/目录的ember-cli项目.我已将应用程序配置为处理dist/目录中的资产,并将历史记录设置为使用哈希而不是pushState.这允许我将sym链接index.html到根.理由是将项目推送到gh-pagesGitHub上需要root index.html和ember应用程序要求路由绝对不是相对的(AFAIK).但是,GitHub不会遵循sym-links并需要输出的副本index.html.这有效,现在我有2个构建步骤(ember buildcp dist/index.html ./index.html).

如何在完成构建后告诉我Brocfile.js复制输出的index.html文件?

一点回溯历史:我正在开发一个ember-cli插件.我在GitHub上托管它.我需要提供一个演示站点.gh-pages是举办演示网站的正确位置.所以我在gh-pages分支中创建了一个ember-cli应用程序.我无法设置输出文件夹,./因为ember构建将rm -rf输出目录销毁源.所以必须如此dist/.我无法使用,<meta http-equiv="Refresh"...因为Ember在开始时陷入了路径和崩溃.所以我的解决方案是将sym-link/copy更新index.html到更高级别并更改ember的配置以将dist/目录添加到资源并将路由设置为hash而不是pushState.

我目前有一个deply.sh脚本可以做到这一点,但我想知道是否有一种方法使用西兰花这个?

Nov*_*ust 12

我们这个在Ghost结束了.使用ember-cli为自己生成一个in-repo-addon,然后使用你最喜欢的库来复制文件(我已经有了fs-extra并且正在使用它)

用你的插件创建你的插件 ember g in-repo-addon <addon-name>

/lib/<addon-name>/index.js:

module.exports = {
    name: '<addon-name>',
    postBuild: function (results) {
        var fs = this.project.require('fs-extra');
        fs.copySync(results.directory + '/index.html', '../server/views/default.hbs');
    }
};
Run Code Online (Sandbox Code Playgroud)

来自Ghost的示例

Ember-cli docs:开发插件脚手架in-repo插件