From fd260cd93753f266ac1bfe2b17efa50db53213d2 Mon Sep 17 00:00:00 2001 From: LasTanzen Date: Fri, 19 Aug 2016 20:34:18 +0200 Subject: [PATCH 1/4] Add loaders for fonts --- addon/ng2/models/webpack-build-common.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addon/ng2/models/webpack-build-common.ts b/addon/ng2/models/webpack-build-common.ts index 98abd8ebfe5b..47512a138548 100644 --- a/addon/ng2/models/webpack-build-common.ts +++ b/addon/ng2/models/webpack-build-common.ts @@ -57,7 +57,12 @@ export function getWebpackCommonConfig(projectRoot: string, sourceDir: string, o { test: /\.less$/, loaders: ['raw-loader', 'postcss-loader', 'less-loader'] }, { test: /\.scss$|\.sass$/, loaders: ['raw-loader', 'postcss-loader', 'sass-loader'] }, { test: /\.(jpg|png)$/, loader: 'url-loader?limit=128000'}, - { test: /\.html$/, loader: 'raw-loader' } + { test: /\.html$/, loader: 'raw-loader' }, + { test: /\.svg$/, loader: 'url-loader?limit=65000&mimetype=image/svg+xml&name=svg/[name].[ext]' }, + { test: /\.woff$/, loader: 'url-loader?limit=65000&mimetype=application/font-woff&name=fonts/[name].[ext]' }, + { test: /\.woff2$/, loader: 'url-loader?limit=65000&mimetype=application/font-woff2&name=fonts/[name].[ext]' }, + { test: /\.[ot]tf$/, loader: 'url-loader?limit=65000&mimetype=application/octet-stream&name=fonts/[name].[ext]' }, + { test: /\.eot$/, loader: 'url-loader?limit=65000&mimetype=application/vnd.ms-fontobject&name=fonts/[name].[ext]' } ] }, plugins: [ From 06989a5b7f7b9e61eed8c1c403dacea16431dc4f Mon Sep 17 00:00:00 2001 From: LasTanzen Date: Wed, 24 Aug 2016 00:54:03 +0200 Subject: [PATCH 2/4] Use file loader for svg fonts --- addon/ng2/models/webpack-build-common.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addon/ng2/models/webpack-build-common.ts b/addon/ng2/models/webpack-build-common.ts index 591bf25dbf17..29de9bb5b87b 100644 --- a/addon/ng2/models/webpack-build-common.ts +++ b/addon/ng2/models/webpack-build-common.ts @@ -80,9 +80,8 @@ export function getWebpackCommonConfig(projectRoot: string, environment: string,        { test: /\.(jpg|png)$/, loader: 'url-loader?limit=10000' },        { test: /\.html$/, loader: 'raw-loader' }, - { test: /\.(woff|ttf|svg)$/, loader: 'url?limit=10000' }, - { test: /\.woff2$/, loader: 'url?limit=10000&mimetype=font/woff2' }, - { test: /\.eot$/, loader: 'file' } + { test: /\.(woff|ttf|woff2)$/, loader: 'url?limit=10000' }, + { test: /\.(eot|svg)$/, loader: 'file' } ] }, plugins: [ From 5a341140bfb5fdd426209e70fa53ef6eaa571a81 Mon Sep 17 00:00:00 2001 From: LasTanzen Date: Tue, 18 Oct 2016 21:22:28 +0200 Subject: [PATCH 3/4] Remove path import for PR merge --- addon/ng2/models/webpack-build-common.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/addon/ng2/models/webpack-build-common.ts b/addon/ng2/models/webpack-build-common.ts index f2aed5fe640a..8fc52eece690 100644 --- a/addon/ng2/models/webpack-build-common.ts +++ b/addon/ng2/models/webpack-build-common.ts @@ -1,4 +1,3 @@ -import * as path from 'path'; import * as CopyWebpackPlugin from 'copy-webpack-plugin'; import * as HtmlWebpackPlugin from 'html-webpack-plugin'; import * as webpack from 'webpack'; From 083ab54cda29592f7b8a8935d6127bc58ef4987c Mon Sep 17 00:00:00 2001 From: LasTanzen Date: Tue, 18 Oct 2016 21:24:57 +0200 Subject: [PATCH 4/4] Remove old webpack config --- addon/ng2/models/webpack-build-common.ts | 126 ----------------------- 1 file changed, 126 deletions(-) delete mode 100644 addon/ng2/models/webpack-build-common.ts diff --git a/addon/ng2/models/webpack-build-common.ts b/addon/ng2/models/webpack-build-common.ts deleted file mode 100644 index 8fc52eece690..000000000000 --- a/addon/ng2/models/webpack-build-common.ts +++ /dev/null @@ -1,126 +0,0 @@ -import * as CopyWebpackPlugin from 'copy-webpack-plugin'; -import * as HtmlWebpackPlugin from 'html-webpack-plugin'; -import * as webpack from 'webpack'; -import * as atl from 'awesome-typescript-loader'; - -import {findLazyModules} from './find-lazy-modules'; - -export function getWebpackCommonConfig(projectRoot: string, environment: string, appConfig: any) { - - const appRoot = path.resolve(projectRoot, appConfig.root); - const appMain = path.resolve(appRoot, appConfig.main); - const styles = appConfig.styles.map(style => path.resolve(appRoot, style)); - const scripts = appConfig.scripts.map(script => path.resolve(appRoot, script)); - const lazyModules = findLazyModules(appRoot); - - let entry = { - main: [appMain] - }; - - // Only add styles/scripts if there's actually entries there - if (appConfig.styles.length > 0) entry.styles = styles; - if (appConfig.scripts.length > 0) entry.scripts = scripts; - - return { - devtool: 'source-map', - resolve: { - extensions: ['', '.ts', '.js'], - root: appRoot - }, - context: path.resolve(__dirname, './'), - entry: entry, - output: { - path: path.resolve(projectRoot, appConfig.outDir), - filename: '[name].bundle.js' - }, - module: { - preLoaders: [ - { - test: /\.js$/, - loader: 'source-map-loader', - exclude: [ - /node_modules/ - ] - } - ], - loaders: [ - { - test: /\.ts$/, - loaders: [ - { - loader: 'awesome-typescript-loader', - query: { - useForkChecker: true, - tsconfig: path.resolve(appRoot, appConfig.tsconfig) - } - }, { - loader: 'angular2-template-loader' - } - ], - exclude: [/\.(spec|e2e)\.ts$/] - }, - - // in main, load css as raw text -        { exclude: styles, test: /\.css$/, loaders: ['raw-loader', 'postcss-loader'] }, -        { exclude: styles, test: /\.styl$/, loaders: ['raw-loader', 'postcss-loader', 'stylus-loader'] }, -        { exclude: styles, test: /\.less$/, loaders: ['raw-loader', 'postcss-loader', 'less-loader'] }, -        { exclude: styles, test: /\.scss$|\.sass$/, loaders: ['raw-loader', 'postcss-loader', 'sass-loader'] }, - - // outside of main, load it via style-loader -        { include: styles, test: /\.css$/, loaders: ['style-loader', 'css-loader', 'postcss-loader'] }, -        { include: styles, test: /\.styl$/, loaders: ['style-loader', 'css-loader', 'postcss-loader', 'stylus-loader'] }, -        { include: styles, test: /\.less$/, loaders: ['style-loader', 'css-loader', 'postcss-loader', 'less-loader'] }, -        { include: styles, test: /\.scss$|\.sass$/, loaders: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader'] }, - - // load global scripts using script-loader - { include: scripts, test: /\.js$/, loader: 'script-loader' }, - -        { test: /\.json$/, loader: 'json-loader' }, -        { test: /\.(jpg|png)$/, loader: 'url-loader?limit=10000' }, -        { test: /\.html$/, loader: 'raw-loader' }, - - { test: /\.(woff|ttf|woff2)$/, loader: 'url?limit=10000' }, - { test: /\.(eot|svg)$/, loader: 'file' } - ] - }, - plugins: [ - new webpack.ContextReplacementPlugin(/.*/, appRoot, lazyModules), - new atl.ForkCheckerPlugin(), - new HtmlWebpackPlugin({ - template: path.resolve(appRoot, appConfig.index), - chunksSortMode: 'dependency' - }), - new webpack.NormalModuleReplacementPlugin( - // This plugin is responsible for swapping the environment files. - // Since it takes a RegExp as first parameter, we need to escape the path. - // See https://webpack.github.io/docs/list-of-plugins.html#normalmodulereplacementplugin - new RegExp(path.resolve(appRoot, appConfig.environments['source']) - .replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")), - path.resolve(appRoot, appConfig.environments[environment]) - ), - new webpack.optimize.CommonsChunkPlugin({ - // Optimizing ensures loading order in index.html - name: ['styles', 'scripts', 'main'].reverse() - }), - new webpack.optimize.CommonsChunkPlugin({ - minChunks: Infinity, - name: 'inline', - filename: 'inline.js', - sourceMapFilename: 'inline.map' - }), - new CopyWebpackPlugin([{ - context: path.resolve(appRoot, appConfig.assets), - from: '**/*', - to: path.resolve(projectRoot, appConfig.outDir, appConfig.assets) - }]) - ], - node: { - fs: 'empty', - global: 'window', - crypto: 'empty', - module: false, - clearImmediate: false, - setImmediate: false - } - } -}