ember cli多个索引文件

时间:2015-05-19 15:36:45

标签: ember.js ember-cli broccolijs

我有一个基于ember-cli的应用程序,需要集成到现有的java / JSP应用程序中。为此,我需要生成一个带有js / css指纹URL的JSP文件,这些URL由ember-cli / broccoli-asset-rev生成。

这对于html文件工作正常,我可以通过更改我的Brocfile.js来设置它使用JSP文件:

var app = new EmberApp({
  outputPaths: {
    app : {
      html: 'index.jsp'
    }
  }
});

但这会阻止ember服务工作,因为它使用index.jsp作为html文件。是否有可能同时生成?

3 个答案:

答案 0 :(得分:1)

在尝试了很多东西后,我提出了两种解决方案,两者都有缺点。第一个是使用制作一个新的西兰花树并将其与他的应用程序树合并然后明确地在生成的树上运行broccoli-asset-rev。这样做的缺点是胡子没有水分,这对于输出配置很有用。这看起来像是:



//Brocfile.js

var mergeTrees = require('broccoli-merge-trees');
var funnel = require('broccoli-funnel');
var assetRev = require('broccoli-asset-rev');
var EmberApp = require('ember-cli/lib/broccoli/ember-app');

var jspTree;

var app = new EmberApp({
  fingerprint: {
    enabled: false
  },
  storeConfigInMeta: false
});


jspTree = funnel('app', {
  files: ['index.jsp']
});

module.exports = assetRev(mergeTrees([appTree = app.toTree(), jspTree]), {
  extensions: ['js', 'css'],
  replaceExtensions: ['jsp', 'html']
});




另一个解决方案是覆盖ember-cli中的私有api方法,该方法为索引构建树。这个解决方案确实让小胡子变得水润,但依赖于私人方法。您可以找到详细信息herehere

答案 1 :(得分:0)

添加符号链接怎么样?

ln -s index.jsp index.html

答案 2 :(得分:0)

根据您在项目中使用的构建工具,我可能会推荐以下内容:

  1. 在index.html中放置一些占位符部分。
  2. 将index.jsp复制到index.jsp.tmp。
  3. 将代码从index.jsp复制到占位符部分。
  4. 将index.jsp.tmp移回index.jsp并清理。
  5. 你可能会考虑像gulp-replace这样的工作。