Advertisement
Guest User

webpack.config.js

a guest
May 23rd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. const path = require('path'),
  2. webpack = require("webpack"),
  3. settings = require('./settings'),
  4. ExtractTextPlugin = require('extract-text-webpack-plugin'),
  5. autoprefixer = require("autoprefixer"),
  6. imagemin = require('imagemin'),
  7. imageminJpegRecompress = require('imagemin-jpeg-recompress'),
  8. CleanWebpackPlugin = require('clean-webpack-plugin'),
  9. HtmlWebpackInlineSVGPlugin = require('html-webpack-inline-svg-plugin'),
  10. BrowserSyncPlugin = require('browser-sync-webpack-plugin');
  11. var ImageminPlugin = require('imagemin-webpack-plugin').default;
  12.  
  13. const extractPlugin = new ExtractTextPlugin({
  14. filename: '../style.css',
  15.  
  16. });
  17.  
  18. module.exports = {
  19. mode: 'development',
  20. devtool: 'source-map',
  21. // context: settings.themeLocation,
  22. entry: {
  23. App: settings.themeLocation + "src/js/app.js"
  24. },
  25. output: {
  26. path: path.resolve(__dirname, settings.themeLocation + "js"),
  27. filename: 'bundled.js'
  28. },
  29.  
  30.  
  31. module: {
  32. rules: [
  33. {
  34. test: /\.js$/,
  35. exclude: /node_modules/,
  36. use: [
  37. {
  38. loader: 'babel-loader',
  39. options: {
  40. presets: ['@babel/preset-env']
  41. }
  42. }
  43. ]
  44. },
  45. {
  46. test: /\.scss$/,
  47. exclude: /node_modules/,
  48. use: extractPlugin.extract({
  49. use: ['css-loader', 'postcss-loader', 'sass-loader']
  50. })
  51. },
  52. {
  53. test: /\.(woff|woff2|ttf|otf|eot|svg)$/,
  54. exclude: /node_modules/,
  55. loader: 'url-loader',
  56. options: {
  57. outputPath: '//1t-group.com/' + settings.themeLocation + 'fonts/',
  58. publicPath: 'fonts/',
  59. name: 'fonts/[name].[ext]',
  60. limit: 1000
  61. }
  62. },
  63. {
  64. test: /\.(gif|png|jpe?g|svg)$/i,
  65. use: [
  66. {
  67. loader: 'file-loader',
  68. options: {
  69. name: "[name].[ext]",
  70. outputPath: '//1t-group.com/' + settings.themeLocation + 'images/',
  71. publicPath: 'images/',
  72. }
  73. },
  74. {
  75. loader: 'image-webpack-loader',
  76. options: {
  77. mozjpeg: {
  78. progressive: true,
  79. quality: 35
  80. },
  81. // optipng.enabled: false will disable optipng
  82. optipng: {
  83. enabled: true,
  84. },
  85. pngquant: {
  86. quality: '65-90',
  87. speed: 4
  88. },
  89. gifsicle: {
  90. interlaced: false,
  91. },
  92.  
  93. }
  94. },
  95. ],
  96. }
  97. /*{
  98. test: /\.html$/,
  99. use: [
  100. {
  101. loader: 'html-loader',
  102. options: {
  103. attrs: ['img:src'],
  104. minimize: false,
  105. }
  106. }
  107. ]
  108. }*/
  109. ]
  110. },
  111. plugins: [
  112. extractPlugin,
  113. new webpack.LoaderOptionsPlugin({
  114. options: {
  115. postcss: [
  116. autoprefixer()
  117. ]
  118. }
  119. }),
  120. new webpack.ProvidePlugin({
  121. $: 'jquery',
  122. jQuery: 'jquery',
  123. 'window.jQuery': 'jquery'
  124. }),
  125.  
  126. new CleanWebpackPlugin(['dist']),
  127.  
  128. new BrowserSyncPlugin({
  129. files: '**/*.php',
  130. proxy: 'http://1t-group.com',
  131. injectChanges: true
  132. })
  133. ],
  134.  
  135. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement