Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何在ember cli Brocfile.js中执行生成后挂钩?_Ember.js_Ember Cli_Broccolijs - Fatal编程技术网

Ember.js 如何在ember cli Brocfile.js中执行生成后挂钩?

Ember.js 如何在ember cli Brocfile.js中执行生成后挂钩?,ember.js,ember-cli,broccolijs,Ember.js,Ember Cli,Broccolijs,我有一个构建到dist/目录的ember cli项目。我已将应用程序配置为处理dist/目录中的资产,并将历史记录设置为使用哈希而不是pushState。这允许我将index.html符号链接到根目录。理由是将项目推到GitHub上的gh页面,需要一个根索引。html,而ember应用程序要求路由是绝对的,而不是相对的(AFAIK)。但是,GitHub不会遵循sym链接,并且需要输出index.html的副本。这是可行的,现在我有两个构建步骤(ember-build和cp-dist/index.

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

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

回顾历史:我正在开发一个ember cli插件。我在GitHub上托管它。我需要提供一个演示网站
gh页面
是演示站点的正确宿主位置。因此,我在
gh页面
分支中创建了一个ember cli应用程序。我无法将输出文件夹设置为
/
,因为余烬构建将
rm-rf
输出目录销毁源代码。所以它必须是
dist/
。我无法使用
我们在上个月完成了此操作。使用ember cli为您自己生成一个in-repo插件,然后使用您最喜欢的库复制文件(我已经有了fs extra,正在使用它)

使用repo插件中的
ember g创建您的插件


Ember cli docs:和

您是将插件托管在专用npm存储库中还是通过guthub?或者有没有办法将插件包含在ember cli应用程序代码库中?查看链接的代码。您将其包括在应用程序回购中。我将为其他可能需要像我一样更多解释的人编辑答案。谢谢你,顺便说一句,我从来都不知道你可以在项目中编写自己的附加组件!我的同事们将带着这个消息去哈利路亚。嘿,Sukima,很抱歉反应太晚-我不经常访问这个网站;)你是对的,
ember-generate-addon
用于制作外部插件;构建in-reop加载项的命令是repo加载项中的
ember g
,因此,为了构建我的加载项,我在repo加载项资产交付中运行
ember g
,然后编辑创建的index.js。没有其他工作是必要的。哦,哇,据我所知,repo插件中的
似乎是一个未记录的特性。它被深埋在地下。很高兴知道它在那里!谢谢。我遇到了同样的问题,所以我写了一个插件来在构建后复制文件:
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');
    }
};