*/
const AssetsPlugin = require('assets-webpack-plugin')
-const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
const ContextReplacementPlugin = require('webpack/lib/ContextReplacementPlugin')
const CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin')
const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin
const HtmlWebpackPlugin = require('html-webpack-plugin')
const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin')
const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
+const InlineManifestWebpackPlugin = require('inline-manifest-webpack-plugin')
const ngcWebpack = require('ngc-webpack')
+const CopyWebpackPlugin = require('copy-webpack-plugin')
const WebpackNotifierPlugin = require('webpack-notifier')
loader: 'sass-resources-loader',
options: {
resources: [
- helpers.root('src/sass/_variables.scss')
+ helpers.root('src/sass/_variables.scss'),
+ helpers.root('src/sass/_mixins.scss')
]
}
}
]
},
{ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: 'url-loader?limit=10000&minetype=application/font-woff' },
- { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: 'file-loader' },
+ { test: /\.(otf|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: 'url-loader?limit=10000' },
/* Raw loader support for *.html
* Returns file content as string
new CommonsChunkPlugin({
name: 'vendor',
chunks: ['main'],
- minChunks: module => /node_modules\//.test(module.resource)
+ minChunks: module => {
+ return /node_modules\//.test(module.resource)
+ }
}),
// Specify the correct order the scripts will be injected in
}
),
- /*
- * Plugin: ScriptExtHtmlWebpackPlugin
- * Description: Enhances html-webpack-plugin functionality
- * with different deployment options for your scripts including:
- *
- * See: https://github.com/numical/script-ext-html-webpack-plugin
- */
- new ScriptExtHtmlWebpackPlugin({
- sync: [ /polyfill|vendor/ ],
- defaultAttribute: 'async',
- preload: [/polyfill|vendor|main/],
- prefetch: [/chunk/]
- }),
-
/*
* Plugin: HtmlWebpackPlugin
* Description: Simplifies creation of HTML files to serve your webpack bundles.
inject: 'body'
}),
+ new CopyWebpackPlugin([
+ {
+ from: helpers.root('src/assets/images/favicon.png'),
+ to: 'assets/images/favicon.png'
+ },
+ {
+ from: helpers.root('src/assets/images/default-avatar.png'),
+ to: 'assets/images/default-avatar.png'
+ }
+ ]),
+
+ /*
+ * Plugin: ScriptExtHtmlWebpackPlugin
+ * Description: Enhances html-webpack-plugin functionality
+ * with different deployment options for your scripts including:
+ *
+ * See: https://github.com/numical/script-ext-html-webpack-plugin
+ */
+ new ScriptExtHtmlWebpackPlugin({
+ sync: [ /polyfill|vendor/ ],
+ defaultAttribute: 'async',
+ preload: [/polyfill|vendor|main/],
+ prefetch: [/chunk/]
+ }),
+
new WebpackNotifierPlugin({ alwaysNotify: true }),
/**
*/
new LoaderOptionsPlugin({
options: {
+ context: '',
sassLoader: {
precision: 10,
includePaths: [ helpers.root('src/sass') ]
tsConfig: helpers.root('tsconfig.webpack.json')
}),
- new BundleAnalyzerPlugin({
- // Can be `server`, `static` or `disabled`.
- // In `server` mode analyzer will start HTTP server to show bundle report.
- // In `static` mode single HTML file with bundle report will be generated.
- // In `disabled` mode you can use this plugin to just generate Webpack Stats JSON file by setting `generateStatsFile` to `true`.
- analyzerMode: 'static',
- // Path to bundle report file that will be generated in `static` mode.
- // Relative to bundles output directory.
- reportFilename: 'report.html',
- // Automatically open report in default browser
- openAnalyzer: false,
- // If `true`, Webpack Stats JSON file will be generated in bundles output directory
- generateStatsFile: true,
- // Name of Webpack Stats JSON file that will be generated if `generateStatsFile` is `true`.
- // Relative to bundles output directory.
- statsFilename: 'stats.json',
- // Options for `stats.toJson()` method.
- // For example you can exclude sources of your modules from stats file with `source: false` option.
- // See more options here: https://github.com/webpack/webpack/blob/webpack-1/lib/Stats.js#L21
- statsOptions: null,
- // Log level. Can be 'info', 'warn', 'error' or 'silent'.
- logLevel: 'info'
- })
+ new InlineManifestWebpackPlugin()
],
/*