如何在ember-cli Brocfile.js中执行构建后挂钩



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

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

历史回顾:我正在开发一个ember cli插件。我在GitHub上托管它。我需要提供一个演示网站。gh-pages是举办演示站点的正确场所。因此,我在gh-pages分支中创建了一个ember-cli应用程序。我无法将输出文件夹设置为./,因为成员构建将rm -rf输出目录销毁源。所以它必须是dist/。我不能使用<meta http-equiv="Refresh"...,因为Ember在一开始就打乱了路径并崩溃了。因此,我的解决方案是将index.html符号链接/复制到更高级别,并更改ember的配置,将dist/目录预先设置为assets,并将路由设置为hash而不是pushState。

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

我们在Ghost上做了这个。使用ember-cli为自己生成一个内部repo插件,然后使用您喜欢的库来复制文件(我已经有了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');
    }
};

Ghost 示例

Ember-cli文档:在repo插件中开发插件和脚手架

相关内容

  • 没有找到相关文章