5
我有一个插件需要将一组JS文件从他们的bower目录复制到Ember应用程序的根目录/dist
(这是与服务工作者相关的范围规则)。我想也许我可以使用treeForApp
钩子,但是当我没有得到任何错误时,我也没有得到想要的结果。Ember addon将文件添加到根目录
的index.js
是:
const Funnel = require('broccoli-funnel');
module.exports = {
name: 'ember-upup',
treeForApp: function(tree) {
tree = new Funnel(tree, { include:
[
'bower_components/upup/dist/upup.min.js',
'bower_components/upup/dist/upup.sw.min.js'
]});
return this._super.treeForApp.call(this, tree);
},
注:我想我也许可以通过简单复制的JavaScript文件作为
index.js
postBuild钩的一部分来解决这个问题,但同时,这并把JS文件放到dist文件夹的根目录下,显然如果不是通过其中的一个构建管道进行推送的话,它不会被ember-cli的ember serve
服务。Stefan Penner现在指出
dist
目录是供开发人员查看的,但是服务实际上是在tmp
目录结构中完成的......这就解释了为什么我的“黑客”不起作用。
你有没有试过用默认蓝图'this.addBowerPackageToProject('upup.js')'导入? – Bek
@Bek'addBowerPackageToProject'是将文件放入bower_components目录的第一步。我需要做的是将两个JS文件从它们的初始位置移动到应用程序构建的根(也就是'/ dist'文件夹)。这很重要,因为如果他们不在分配的根源,那么服务人员将无法与所有页面资产进行交互。 – ken
如果你已经有了'addBowerPackageToProject',那么你需要通过'include'钩子中的'app.import()'将它们导入主'index.js'中,你试过了吗?如果没有,我会写这个答案? – Bek