stylesheets.babel.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /**
  2. * @prettier
  3. */
  4. // NOTE: this config *does not* inherit from `_config-builder`.
  5. // It is also used in the dev config.
  6. import path from "path"
  7. import MiniCssExtractPlugin from "mini-css-extract-plugin"
  8. import IgnoreAssetsPlugin from "ignore-assets-webpack-plugin"
  9. export default {
  10. mode: "production",
  11. entry: {
  12. "swagger-ui": "./src/style/main.scss",
  13. },
  14. module: {
  15. rules: [
  16. {
  17. test: [/\.(scss)(\?.*)?$/],
  18. use: [
  19. {
  20. loader: MiniCssExtractPlugin.loader,
  21. },
  22. {
  23. loader: "css-loader",
  24. options: { sourceMap: true },
  25. },
  26. {
  27. loader: "postcss-loader",
  28. options: {
  29. postcssOptions: {
  30. sourceMap: true,
  31. plugins: [
  32. require("cssnano")(),
  33. require("autoprefixer")(),
  34. ],
  35. }
  36. },
  37. },
  38. {
  39. loader: "sass-loader",
  40. options: {
  41. outputStyle: "expanded",
  42. sourceMap: true,
  43. sourceMapContents: "true",
  44. },
  45. },
  46. ],
  47. },
  48. ],
  49. },
  50. plugins: [
  51. new MiniCssExtractPlugin({
  52. filename: "[name].css",
  53. }),
  54. new IgnoreAssetsPlugin({
  55. // This is a hack to avoid a Webpack/MiniCssExtractPlugin bug, for more
  56. // info see https://github.com/webpack-contrib/mini-css-extract-plugin/issues/151
  57. ignore: ["swagger-ui.js", "swagger-ui.js.map"],
  58. }),
  59. ],
  60. devtool: "source-map",
  61. output: {
  62. path: path.join(__dirname, "../", "dist"),
  63. publicPath: "/dist",
  64. },
  65. optimization: {
  66. splitChunks: {
  67. cacheGroups: {
  68. styles: {
  69. name: "styles",
  70. test: /\.css$/,
  71. chunks: "all",
  72. enforce: true,
  73. },
  74. },
  75. },
  76. },
  77. }