如何在ember build

时间:2016-05-21 15:49:21

标签: ember-cli broccolijs

我希望在运行构建时在ember应用程序中的两个文件夹之间移动一些文件,但我没有成功。

//ember-cli-build.js
module.exports = function (defaults) {

    var app = new EmberApp(defaults, {
        hinting: false,
        minifyCSS: {
            enabled: true
        },
        bless: {
            enabled: true
        }
    });

    var moveFile = new Funnel('./app/locales', {
        srcDir: 'en',
        files: ['test.js'],
        destDir: 'en_US',
        allowEmpty: true
    });


    return new MergeTrees([moveFile, app.toTree()]);
};

当我进行构建时,我没有错误,但文件也没有被移动。

更新:我试图在ember-cli put编译文件并将其放入dist文件夹之前移动文件

2 个答案:

答案 0 :(得分:0)

您可以使用broccoli-static-compiler https://github.com/joliss/broccoli-static-compiler

在brocfile.js(ember-cli-build.js)

// at top of file
var pickFiles = require('broccoli-static-compiler');
var mergeTrees = require('broccoli-merge-trees');

// inside exporting function

  const bootstrapMap = pickFiles('bower_components/bootstrap/dist/css/',
    {
      srcDir: '/',
      files: ['bootstrap.css.map'],
      destDir: '/assets'
    });
  // and so on, as many times as you need
  const zeroClipboard = pickFiles('bower_components/zeroclipboard/dist/',
    {
      srcDir: '/',
      files: ['ZeroClipboard.swf'],
      destDir: '/assets'
    });

// at the end
  return mergeTrees([
    app.toTree(),
    bootstrapMap,
    zeroClipboard,
    // ...
  ], { overwrite: true });

答案 1 :(得分:0)

使用&broccoli build',您的应用程序将构建到目标文件夹中,因此西兰花是在现有文件夹结构中移动文件的错误工具。在这里,我假设它的运行类似于' broccoli build dist'在命令行上创建一个新文件夹' dist'使用构建的结果,如果目录已经存在则输出错误。

所以,让我们说你的项目目录如下:

<template ngFor #item [ngForOf]="Items | Search: Past" #isHeader="first" >

当你从. |--brocfile.js |--app/ |--locales/ <----- funnel root |--en/ <----- srcDir |--test.js <----- file 漏斗时,你的srcDir和files`是相对于root的。然后将输出树放入&#39; destDir&#39;在构建输出目录下。这将是这样的:

./app/locales

我认为您希望. |--brocfile.js |--app/ <----- not changed |--dist/ <----- build output directory |--en_US <----- destDir |--test.js <----- file destDirlocales/en_US