2015-10-21 10 views
7

アイデアは、すべてのHTMLファイルのうち1つのJSファイルを持つことです。 と直後経由して、それを使用することが必要です。webpackで角度テンプレートをコンパイルするにはどうすればいいですか?

templateUrl: require('./views/user-list.html') 

あなたがしてください体験共有してもらえますか? 私はそれについてグーグルであり、webpack用のいくつかのローダーを見つけましたが、何を使うべきかは不明です。

答えて

7

webpackにng-cacheローダーをES2015の構文と一緒に使用することにしました。つまり、requireの代わりにimport fromを意味します。私のWebPACKの設定の

パート:テンプレートと

module: { 
    loaders: [ 
     { test: /\.js$/, loader: 'babel', include: APP }, 
     { test: /\.html$/, loader: 'ng-cache?prefix=[dir]/[dir]' }, 
    ] 
    }, 

とディレクティブの例:

import avatarTemplate from './views/avatar.html'; 

const avatar = function() { 
    return { 
    restrict: 'E', 
    replace: true, 
    scope: { 
     user: '=' 
    }, 
    template: avatarTemplate 
    } 
}; 

export default avatar; 
+0

あなたは接頭辞で特定のフォルダのみを追加することができますか? –

+0

それははいのようです - https://www.npmjs.com/package/ng-cache-loader –

+0

あなたの意見ではこれをどのように使いますか? (好奇心) – pootzko

3

あなたの答えは正しいです。 Webpack.configで

const avatar = function() { 
    return { 
    restrict: 'E', 
    replace: true, 
    scope: { 
     user: '=' 
    }, 
    template: require("../path/to/file.html"), 
    } 
}; 

export default avatar; 
+0

あなたの意見では、これをインポートを使用するよりもどのように優れているか悪いですか? (好奇心) – pootzko

0

ファイルあなたは がpackage.jsonで、HTMLローダーを含めるとで以下のメソッドを使用し、

plugins: [ 
new HtmlWebpackPlugin({ 
    template: 'index.html' 
}), 
new ExtractTextPlugin('bundle.css') 

]以下のようにメインのHTMLを追加することができます。しかし、ちょうどそれのための代替を提供しますconfigブロックだけで十分です。だから、すべてのパーシャルがbundle.jsにバンドルされます

$stateProvider.state('app', { 
     url: '/app', 
     template: require('html-loader!root/app/Common/templates/role.html'), 
     controller: 'roleController' 
    }) 

itself.NoのWebPACK-config設定でローダーを追加する必要があるだけでなく

関連する問題