2016-05-21 5 views
0

Я хочу переместить некоторые файлы между двумя папками в приложении ember, когда выполняется сборка, но я не добился успеха.Как перемещать/копировать файлы во время сборки 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()]); 
}; 

Когда я делаю сборку, у меня нет ошибок, но файл также не перемещается.

UPDATE: Я пытаюсь переместить файл перед Ember-кли ставит компилирует файлы и помещает его в папку Dist

+0

Я просто изучаю брокколи, но, похоже, ваш код примет './App/locales/en/test.js' как его вход, и вывести этот файл в' /en_US/test.js', Это правильно? –

+0

Да, он должен попытаться поместить файл в папку app/locales/en_US/ –

ответ

0

Вы можете использовать broccoli-static-compilerhttps://github.com/joliss/broccoli-static-compiler

В brocfile.js (уголек-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 }); 
+0

Vasiliy, спасибо за ответ, но похоже, что воронка делает то же самое, что и брокколи-статический компилятор, даже в своем git-репо, они рекомендуют использовать Вместо этого используется воронка, которую я использую. –

0

с «брокколи строить», ваше приложение встраивать в папку назначения, так что брокколи является неправильным инструментом для перемещения файлов в существующей структуре папок. Здесь я предполагаю, что он запущен с чем-то вроде «broccoli build dist» в командной строке, который создаст новую папку «dist» с результатами сборки и ошибкой, если каталог уже существует.

Так скажем, ваш каталог проекта выглядит следующим образом:

. 
|--brocfile.js 
|--app/ 
    |--locales/  <----- funnel root 
    |--en/   <----- srcDir 
     |--test.js <----- file 

Когда воронка от ./app/locales, ваш SRCDIR и files` относительны к тому, что в качестве корня. Дерево вывода затем помещается в «destDir» в каталоге вывода сборки. Что это будет сделать это:

. 
|--brocfile.js 
|--app/    <----- not changed 
|--dist/    <----- build output directory 
    |--en_US   <----- destDir 
     |--test.js  <----- file 

Я думаю, что вы хотите, чтобы ваши destDir быть locales/en_US или app/locales/en_US.

Смежные вопросы