NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

webpack.config.js 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. const path = require('path')
  2. const webpack = require('webpack')
  3. const { VueLoaderPlugin } = require('vue-loader')
  4. const CompressionPlugin = require('compression-webpack-plugin')
  5. const PostCssPlugins = [
  6. require('postcss-import'),
  7. require('precss'),
  8. require('autoprefixer')
  9. ]
  10. module.exports = (env = {}) => {
  11. return {
  12. mode: env.production ? 'production' : 'development',
  13. module: {
  14. rules: [{
  15. test: /\.vue$/,
  16. use: ['vue-loader']
  17. },
  18. {
  19. test: /\.(js)$/,
  20. loader: 'babel-loader',
  21. exclude: /node_modules/
  22. },
  23. {
  24. test: /\.pug$/,
  25. oneOf: [
  26. // this applies to `<template lang="pug">` in Vue components
  27. {
  28. resourceQuery: /^\?vue/,
  29. use: ['pug-plain-loader']
  30. }
  31. ]
  32. },
  33. {
  34. test: /\.(png|jpg|gif|svg|ttf|woff2|woff)$/,
  35. loader: 'url-loader',
  36. options: {
  37. limit: 10000,
  38. name: '[name].[ext]?[hash]'
  39. }
  40. },
  41. {
  42. test: /(\.html$|favicon)/,
  43. loader: 'file-loader',
  44. options: {
  45. name: '[name].[ext]'
  46. }
  47. },
  48. {
  49. test: /\.(css|sss|postcss)$/,
  50. use: [{
  51. loader: 'vue-style-loader'
  52. },
  53. {
  54. loader: 'postcss-loader',
  55. options: {
  56. parser: 'sugarss',
  57. plugins: () => {
  58. return PostCssPlugins
  59. }
  60. }
  61. }
  62. ]
  63. }
  64. ]
  65. },
  66. output: {
  67. path: path.join(__dirname, 'public'),
  68. publicPath: '/'
  69. },
  70. devServer: {
  71. historyApiFallback: true
  72. },
  73. devtool: env.production ? false : 'cheap-module-eval-source-map',
  74. plugins: [
  75. new webpack.DefinePlugin({
  76. PRODUCTION: JSON.stringify(env.production)
  77. }),
  78. new VueLoaderPlugin(),
  79. new CompressionPlugin()
  80. ]
  81. }
  82. }