Files
agent/web/src/webpack.config.js
Róbert Kiss 67a55363da build(webpack): Fix the request of a dependency is an expression (#337)
* build(webpack): Fix the request of a dependency is an expression

Critical dependency: the request of a dependency is an expression

* style: Fix spaces after object literal braces
2017-07-05 18:35:56 +02:00

93 lines
3.0 KiB
JavaScript

const webpack = require("webpack");
const SvgStore = require('webpack-svgstore-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const path = require('path');
const CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlugin");
const ContextReplacementPlugin = require("webpack/lib/ContextReplacementPlugin");
const webpackHelper = require('../../scripts/webpack-helper');
const rootDir = path.resolve(__dirname, '../');
console.log(rootDir, __dirname);
module.exports = {
entry: {
polyfills: path.resolve(rootDir, 'src/shared/polyfills.ts'),
vendor: path.resolve(rootDir, 'src/vendor.ts'),
app: path.resolve(rootDir, 'src/main.ts')
},
output: {
path: rootDir + "/dist",
filename: "[name].uhk.js"
},
devtool: 'source-map',
resolve: {
extensions: ['.webpack.js', '.web.js', '.ts', '.js'],
modules: ["node_modules"],
alias: {
jquery: 'jquery/dist/jquery.min.js',
select2: 'select2/dist/js/select2.full.min.js',
'file-saver': 'filesaver.js/FileSaver.min.js'
}
},
module: {
rules: [
{ test: /\.ts$/, use: ['ts-loader', 'angular2-template-loader'], exclude: /node_modules/ },
{ test: /\.html$/, loader: 'html-loader?attrs=false' },
{
test: /\.scss$/,
exclude: /node_modules/,
use: ['raw-loader', 'sass-loader']
},
{ test: /jquery/, loader: 'expose-loader?$!expose-loader?jQuery' }
]
},
plugins: [
// new webpack.optimize.UglifyJsPlugin({ minimize: true })
new SvgStore({
svgoOptions: {
plugins: [
{ removeTitle: true }
]
}
}),
new CopyWebpackPlugin(
[
{ from: './web/src/index.html', flatten: true },
{
from: 'node_modules/font-awesome/css/font-awesome.min.css',
to: 'vendor/font-awesome/css/font-awesome.min.css'
},
{
from: 'node_modules/font-awesome/fonts',
to: 'vendor/font-awesome/fonts'
},
{
from: 'node_modules/bootstrap/dist/',
to: 'vendor/bootstrap'
},
{
from: 'images',
to: 'images'
},
],
{
ignore: ['*.config.js']
}
),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new CommonsChunkPlugin({
name: ['app', 'vendor', 'polyfills']
}),
new ContextReplacementPlugin(
// The (\\|\/) piece accounts for path separators in *nix and Windows
/angular(\\|\/)core(\\|\/)@angular/,
webpackHelper.root(__dirname, './src') // location of your src
)
]
};