在Ember CLI项目中使用Broccoli JS移动整个文件夹

10

我正在开发一个ember-cli项目,并且正在处理一个能够解析未加载的模板并可能存在于项目结构之外的系统。

我希望在我的dist/assets目录中有一个名为templates的文件夹,其中包含来自app/templates/external的所有预编译模板。这是我使用broccoli stew编写的当前Brocfile.js尝试:

var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var stew = require("broccoli-stew");

var app = new EmberApp({
  vendorFiles: {
    "jquery.js": null
  },
  sassOptions: {
      includePaths: [
        'bower_components/bourbon/app/assets/stylesheets/',
        'bower_components/neat/app/assets/stylesheets/',
        'bower_components/bitters/app/assets/stylesheets/'
      ]
    }
});

var additionalTrees = [];

var templateFiles = stew.find(appTree, "assets/app/templates/external");
templateFiles = stew.mv(templateFiles, "assets/app/templates/external", "assets/templates");
additionalTrees.push(templateFiles);

module.exports = app.toTree(additionalTrees);

这可能会给你一个复制文件的想法。http://stackoverflow.com/a/30464235/548568 - blessanm86
1个回答

1

有一个名为broccoli-file-mover的npm包,易于使用,并可在此处找到

使用非常简单,像这样:

moveFile(inputTree, options)

可以用于移动文件(多个或单个)或整个文件夹

示例:

将一个文件从app/main移动到app:

var moveFile = require('broccoli-file-mover');

var tree = moveFile('app', {
  srcFile: 'app/main.js',
  destFile: '/app.js'
});

将 app/main 移动到 app,将 test/main 移动到 test:
var moveFile = require('broccoli-file-mover');

var tree = moveFile('app', {
  files: {
    'app/main.js': 'app.js',
    'test/main.js': 'test.js'
  }
});

此外,在blessnm评论之前,西兰花漏斗是一个可能的解决方案,因为您可以将目录复制到任何您想要的地方(虽然问题说明了移动,但是复制可能是可接受的解决方案),这里是该插件的存储库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接