Skip to content

Instantly share code, notes, and snippets.

@joeeames
Last active April 15, 2018 06:06
Show Gist options
  • Save joeeames/98a78df56e8f9369058c5844f857bdc3 to your computer and use it in GitHub Desktop.
Save joeeames/98a78df56e8f9369058c5844f857bdc3 to your computer and use it in GitHub Desktop.
new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, './client')),
var path = require('path');
var _root = path.resolve(__dirname, '..');
function root(args) {
args = Array.prototype.slice.call(arguments, 0);
return path.join.apply(path, [_root].concat(args));
}
exports.root = root;
Error.stackTraceLimit = Infinity;
require('core-js/es6');
require('core-js/es7/reflect');
require('zone.js/dist/zone');
require('zone.js/dist/long-stack-trace-zone');
require('zone.js/dist/proxy');
require('zone.js/dist/sync-test');
require('zone.js/dist/jasmine-patch');
require('zone.js/dist/async-test');
require('zone.js/dist/fake-async-test');
var appContext = require.context('../public/app', true, /\.spec\.ts/);
appContext.keys().forEach(appContext);
var testing = require('@angular/core/testing');
var browser = require('@angular/platform-browser-dynamic/testing');
testing.TestBed.initTestEnvironment(browser.BrowserDynamicTestingModule, browser.platformBrowserDynamicTesting());
const path = require('path');
const webpack = require('webpack');
const helpers = require('./helpers');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const ENV = process.env.NODE_ENV = process.env.ENV = 'development';
module.exports = {
entry: {
'polyfills': './public/polyfills.ts',
'vendor': './public/vendor.ts',
'ng1': './public/index.ts',
'app': './public/main.ts'
},
output: {
path: helpers.root('dist/dev'),
publicPath: '/',
filename: '[name].bundle.js',
chunkFilename: '[id].chunk.js'
},
resolve: {
extensions: ['.ts', '.js']
},
module: {
rules: [
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader', 'angular2-template-loader']
},
{
test: /\.html$/,
loader: 'html-loader'
}
]
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'common',
minChunks: Infinity
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
chunks: ['vendor', 'app'],
minChunks: 2
}),
new webpack.SourceMapDevToolPlugin({
'filename': '[file].map[query]',
'moduleFilenameTemplate': '[resource-path]',
'fallbackModuleFilenameTemplate': '[resource-path]?[hash]',
'sourceRoot': 'webpack:///'
}),
new HtmlWebpackPlugin({
template: 'config/index.html',
chunks: ['app']
}),
new webpack.DefinePlugin({
'process.env': {
'ENV': JSON.stringify(ENV)
}
}),
new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, './client')),
// new BundleAnalyzerPlugin({
// analyzerMode: 'static'
// })
]
}
const webpack = require('webpack');
const helpers = require('./helpers');
module.exports = {
devtool: 'inline-source-map',
resolve: {
extensions: ['.ts', '.js']
},
module: {
rules: [
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader', 'angular2-template-loader']
},
{
test: /\.html$/,
loader: 'html-loader'
}
]
},
plugins: [
new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, './client')),
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment