2016-05-02 7 views
1

私は非常に簡単なプロジェクトを持っています。私はいくつかのbashファイルといくつかのJavaScriptファイルをsrc/ディレクトリに持っています。私はJSファイルを切り出し、残りをコピーしたいと思います。いくつかのファイルをビルドし、残りをコピーします

ここに私のフォルダ構造があります:私は.jsに私の.es6ファイルをtranspiles babelを呼び出すGruntfileを持っているが、残念ながら、私のbashのファイル、run_codeがtranspiledされていない現時点ではそう

root 
|- dist // Where grunt should output 
|- src 
| |- run_code // this is a bash file calling `code` 
| |- code.es6 // My JavaScript files 
| 
|- Gruntfile.js 
|- package.json 

。ここに私のgruntfileです:

module.exports = function(grunt) { 

    require('load-grunt-tasks')(grunt); 

    grunt.initConfig({ 
     babel: { 
      options: { 
       presets: ['es2015'], 
       plugins: [] 
      }, 
      dist: { 
       files: [{ 
        expand: true, 
        cwd: 'src/', 
        src: ['**/*.es6'], 
        dest: 'dist/', 
        ext: '.js' 
       }] 
      } 
     } 
    }); 

    grunt.registerTask('default', ['babel']); 
}; 

files: [{セクションを見てみましょう。ご覧のとおり、ファイルをsrc/ディレクトリからdist/ディレクトリにコンパイルしています。これは以外は正常に動作しますが、run_codeはコピーされません。

私は後で他のタスクを追加するかもしれませんが、私の質問は、どうやってgruntタスクによって触れられていないファイルをコピーするべきですか?私は.es6ではないすべてのファイルをコピーするフィルターを行うことができるかもしれませんが、ハードコーディングは非常にハックな解決策のように感じます。確かに、これをするための良い方法があるはずです(誰かがコピーして保存する方法より良いと思われるパーミッション)。同様に近い私が言うことができるように

+1

ATMに応答する時間が足りません:ファイルをコピーするには、['grunt-contrib-copy'](https://www.npmjs.com/package/grunt-contrib-copy#usage-examples)を使用してください。プラグイン。ほぼすべてのパス設定と同様に、globパターンの否定も受け付けます(http://gruntjs.com/configuring-tasks#globbing-patterns)。同じことがバベルにも当てはまります。 .es6ファイルをコピーから除外するには、 '{src: '!src/*。es6'、dest:...}'などのように、ファイルセットに負のファイルパターンを追加することができます。 –

答えて

3

cwdたちはsrc/ディレクトリからコピーしているとsrcはあなただけ.es6ファイルを欲しいと言うと言います。だからあなたは実際にそれをコピーするように言っているわけではありません(実際には "バーベルを通す")run_code

run_coderun_code.es6の名前を変更するか、srcアレイに追加してください。

run_codeをトランスコードせずにコピーする場合は、copyパッケージのいずれかを使用してください。同じ方法でbabelを追加し、copyタスクを利用できるようにgrunt-contrib-copyのようなパッケージを追加します。インストールと使用方法は、利便性のために以下に引用され、多くのbabelのもののようなものです:

インストール:

npm install grunt-contrib-copy --save-dev 

使用するには、追加:あなたのinitConfig

grunt.loadNpmTasks('grunt-contrib-copy'); 

そして、このような何か:

copy: { 
    main: { 
    files: [ 
     { 
     expand: true, 
     cwd: 'src/', 
     src: ['run_code'], 
     dest: 'dist/'} 
     } 
    ], 
    }, 
} 

をソートすることもおすすめしますファイルとコピー可能なファイルを独自のディレクトリに編成して、ワイルドカード式を利用することができます。

+0

この作業を行うために 'copy'パッケージをうまく使う方法を説明できますか?また、 'run_file'はJavaScriptファイルではありませんので、' run_file.es6'に名前を変更することはできません。 – Downgoat

+0

@Downgoatあなたのコメントを考慮に入れて更新しました。 – Ouroborus

関連する問題