2016-05-21 7 views
0

ビルダーの実行時にemberアプリケーション内の2つのフォルダ間でファイルを移動したいが、成功していない。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:私はエンバー-cliのプットの前にファイルを移動しようとしていますが、ファイルをコンパイルし、

+0

私はブロッコリーを学んでいるだけですが、あなたのコードは '。/ app/locales/en/test.js'を入力してそのファイルを' /en_US/test.js'に出力するようです。そうですか? –

+0

はい、それはapp/locales/en_US/folderにファイルを置くようにしなければなりません –

答えて

0

あなたはbrocfile.jsでbroccoli-static-compilerhttps://github.com/joliss/broccoli-static-compiler

(燃えさし-cli-を使用することができdistのフォルダに入れます「ブロッコリーのビルド」で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、回答ありがとうございますが、funnelはbroccoli-static-compilerと同じことをやっているようです。代わりに私が使用しているファネル。 –

0

、あなたのアプリケーションは、インストール先のフォルダの中に構築しているので、ブロッコリーは、既存のフォルダ構造内のファイルを移動するための間違ったツールです。ここでは、ビルドの結果と新しいフォルダ 'dist'を作成するコマンドラインに 'broccoli build dist'のようなものがあると仮定しています。ディレクトリがすでに存在する場合はエラーが発生します。

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

あなたは./app/localesから漏斗、あなたのSRCDIRをし、rootとしてそれに比べfiles`を以下のとおりです。

それでは、あなたのプロジェクトディレクトリは次のようになりましょう。出力ツリーはビルド出力ディレクトリの下の 'destDir'に置かれます。私はあなたがあなたのdestDirlocales/en_USapp/locales/en_USになりたいと思います

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

:どのようなことがどうなることはこれです。

関連する問題