2015-12-09 22 views
10

私はyeomanで角ジェネレータを使用しています。 gruntfile.jsでは、/app/viewsのすべてのhtmlファイルがdist/viewsにコピーされます。しかし私は、ディレクティブ自体と同じフォルダにディレクティブテンプレートを保存したい。ビルド時にスクリプトファイルにhtmlファイルをコピーする

例:

/app/scripts/widgets/mywidget.directive.js 
/app/scripts/widgets/mywidget.tmpl.html 

私はプロジェクトをビルドするとき、私は、htmlファイルは上記と同じフォルダ構造に終わるしたいです。

これは、おそらくgruntfile.jsのコピーセクションで行う必要があります。

copy: { 
    dist: { 
    files: [{ 
     expand: true, 
     dot: true, 
     cwd: '<%= yeoman.app %>', 
     dest: '<%= yeoman.dist %>', 
     src: [ 
     '*.{ico,png,txt}', 
     '*.html', 
     'images/{,*/}*.{webp}', 
     'styles/fonts/{,*/}*.*' 
     ] 
    }... 

私はsrc配列でこれを追加しようとしました:

'<%= yeoman.dist %>/scripts/{,*/}*.tmpl.html' 

は動作しませんでした。何か案は?

答えて

3

すべての.tmpl.htmlをapp/scripts/*からdist/scripts /以下のようにgruntfileにコードを変更してください。あなたはfilerevの更新を確実にするためにもuseminブロックに新しいディレクトリを追加したいとしている

files: [{ 
      expand: true, 
      dot: true, 
      cwd: '<%= yeoman.app %>', 
      dest: '<%= yeoman.dist %>', 
      src: [ 
      '*.{ico,png,txt}', 
      '*.html', 
      'views/{,*/}*.html' 
      ] 
     }, { 
      // This block handles copying the .tmpl.html from app/scripts to dist/scripts 
      expand: true, 
      cwd: '<%= yeoman.app %>/scripts', 
      dest: '<%= yeoman.dist %>/scripts', 
      src: '{,*/}*.tmpl.html' 
     } 
     ... 

またhtmlminにディレクトリを追加したい場合がありますあなたのテンプレート

usemin: { 
     html: ['<%= yeoman.dist %>/{,*/}*.html', 
      '<%= yeoman.dist %>/scripts/{,*/}*.html'], 
     ... 

にそれを作ります

htmlmin: { 
    dist: { 
    ... 
    files: [ 
     { 
     expand: true, 
     cwd: '<%= yeoman.dist %>', 
     src: ['*.html', 'views/{,*/}*.html', 'scripts/{,*/}*.html'], 
     dest: '<%= yeoman.dist %>' 
     } 
    ] 
    } 

は今01から任意の.tmpl.htmlを動かす反映 これらのスクリプトを更新しましたHTMLに縮小化します〜dist/scripts/*/。あなたのフォルダ構造がスクリプト内の複数レベルの深い場合は、{,*/}*.html**/*.html

+0

に変更してください。これはスクリプト/ウィジェットでのみ機能しますか?私は/ scripts以下のファイル構造のどのレベルでもtmpl.htmlを持つことができるようにしたい。 – Per

+0

私があなたに求めていることをカバーする更新を行った –

1

これは通常の動作です。ビルド後のすべてのファイルはdist-folderにコピーされますが、これは標準のビルド出力フォルダなのでです。あなたは何ができるか
は、次のように設定を変更することです:

copy: { 
     main: { 
      files: [{ 
       src: ['img/**'], 
       dest: 'dist/img/', 
       filter: 'isFile', 
       expand: true, 
       flatten: true 
      }, { 
       src: ['pdf/**'], 
       dest: 'dist/pdf/', 
       filter: 'isFile', 
       expand: true, 
       flatten: true 
      },{ 
       src: ['error/**'], 
       dest: 'dist/error/', 
       filter: 'isFile', 
       expand: true, 
       flatten: true 
      }, { 
       src: ['fonts/**'], 
       dest: 'dist/fonts/', 
       filter: 'isFile', 
       expand: true, 
       flatten: true 
      } 
     } 
    } 

このアプローチは、distのフォルダ内の古い構造を保持します。しかし、なぜhtmlminを使用してビルド時にすべてのテンプレートをまとめてパックしていないのだろうと思います...

関連する問題