Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var webpack = require('webpack');
- var path = require('path');
- var HtmlWebpackPlugin = require('html-webpack-plugin');
- const VENDOR_LIBS = [
- 'react', 'react-dom' , 'jquery'
- ]
- module.exports = {
- entry: {
- bundle: './src/js/app.js',
- vendor: VENDOR_LIBS
- },
- output: {
- path: path.join(__dirname, 'dist'),
- filename: '[name].[chunkhash].js'
- },
- module: {
- rules: [
- {
- test: /\.js$/,
- exclude: /(node_modules)/,
- use: {
- loader: 'babel-loader',
- options: {
- presets: ['react', 'env']
- }
- }
- },
- {
- test: /\.scss$/,
- use: [{
- loader: "style-loader"
- }, {
- loader: "css-loader"
- }, {
- loader: "sass-loader",
- }]
- },
- {
- test: /\.(woff|woff2|eot|ttf)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
- use: {
- loader: 'url-loader',
- options: {
- name: './fonts/[name].[ext]',
- limit: 30000,
- mimetype: 'application/font-woff',
- },
- }
- },
- {
- test: /\.(svg|png|jpe?g)$/,
- use: [
- {
- loader: 'file-loader',
- options: {
- name: './images/[name].[ext]',
- limit: 30000
- }
- },
- {
- loader: 'image-webpack-loader',
- options: {
- mozjpeg: {
- progressive: true,
- quality: 65
- },
- // optipng.enabled: false will disable optipng
- optipng: {
- enabled: false,
- },
- pngquant: {
- quality: '65-90',
- speed: 4
- },
- gifsicle: {
- interlaced: false,
- },
- // the webp option will enable WEBP
- webp: {
- quality: 75
- }
- }
- }
- ]
- }
- ]
- },
- resolve: {
- modules: [
- path.resolve('./src/js'),
- path.resolve('./src'),
- 'node_modules'
- ]
- },
- plugins: [
- new webpack.optimize.CommonsChunkPlugin({
- names: ['vendor']
- }),
- new HtmlWebpackPlugin({
- template: './src/index.html'
- }),
- new webpack.ProvidePlugin({
- $: "jquery",
- jQuery: "jquery",
- "window.jQuery": "jquery"
- })
- ]
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement