webpack.bundles.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const MiniCssExtractPlugin = require('mini-css-extract-plugin')
  2. const { checkNoSymlinks } = require('./scripts/lib/new')
  3. const { buildEntryMap, buildAliasMap } = require('./scripts/lib/new-webpack')
  4. const { bundleStructs, publicPackageStructs } = require('./scripts/lib/package-index')
  5. checkNoSymlinks(bundleStructs) // can we avoid this if we only ever write js?
  6. module.exports = (env) => {
  7. let doSourceMaps = !(env && env.NO_SOURCE_MAPS)
  8. return {
  9. mode: 'development',
  10. devtool: doSourceMaps ? 'source-map' : false,
  11. entry: buildEntryMap(bundleStructs),
  12. output: {
  13. filename: '[name].js',
  14. path: __dirname,
  15. library: 'FullCalendar',
  16. libraryTarget: 'var'
  17. },
  18. resolve: {
  19. extensions: [ '.ts', '.tsx', '.js' ],
  20. alias: buildAliasMap(publicPackageStructs)
  21. },
  22. module: {
  23. rules: [
  24. {
  25. test: /\.tsx?$/,
  26. use: [
  27. { loader: 'ts-loader', options: { transpileOnly: true } }
  28. ]
  29. },
  30. {
  31. test: /\.css$/,
  32. use: [
  33. MiniCssExtractPlugin.loader,
  34. { loader: 'css-loader', options: { sourceMap: doSourceMaps, importLoaders: 1 } },
  35. { loader: 'postcss-loader', options: { sourceMap: doSourceMaps } }
  36. ]
  37. }
  38. ]
  39. },
  40. plugins: [
  41. new MiniCssExtractPlugin()
  42. ],
  43. stats: {
  44. warningsFilter: /export .* was not found in/
  45. }
  46. }
  47. }