我有一个构建到dist /目录的ember-cli项目.我已将应用程序配置为处理dist /目录中的资产,并将历史记录设置为使用哈希而不是pushState.这允许我将index.html sym链接到根.推理是将项目推送到
GitHub上的gh-pages需要root index.html和ember应用程序要求路由绝对不是相对的(AFAIK).但是,GitHub不会遵循sym-links并需要输出index.html的副本.这有效,现在我有2个构建步骤(ember build和cp 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在启动时陷入了路径并崩溃了.所以我的解决方案是将index.html sym-link / copy复制到更高级别并更改ember的配置以将dist /目录添加到资源并将路由设置为hash而不是pushState. 我目前有一个deply.sh脚本,但我想知道是否有一种方法使用Broccoli这个?
解决方法
我们这个在
Ghost结束了.使用ember-cli为你自己生成一个in-repo-addon,然后使用你最喜欢的库复制文件(我已经有了fs-extra并且正在使用它)
使用ember g in-repo-addon< addon-name>创建您的插件
在/lib/\u0026lt;addon-name\u0026gt;/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'); } };
Ember-cli docs:developing addons和scaffolding in-repo addons