webpack.compat.config.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /**
  2. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. const path = require( 'path' );
  7. const webpack = require( 'webpack' );
  8. const { bundler } = require( '@ckeditor/ckeditor5-dev-utils' );
  9. const CKEditorWebpackPlugin = require( '@ckeditor/ckeditor5-dev-webpack-plugin' );
  10. const BabiliPlugin = require( 'babili-webpack-plugin' );
  11. const buildConfig = require( './build-config' );
  12. module.exports = {
  13. devtool: 'source-map',
  14. entry: [
  15. require.resolve( 'regenerator-runtime/runtime.js' ),
  16. path.resolve( __dirname, 'ckeditor.js' )
  17. ],
  18. output: {
  19. path: path.resolve( __dirname, 'build' ),
  20. filename: 'ckeditor.compat.js',
  21. libraryTarget: 'umd'
  22. },
  23. plugins: [
  24. new CKEditorWebpackPlugin( {
  25. languages: [ buildConfig.language ]
  26. } ),
  27. new BabiliPlugin( null, {
  28. comments: false
  29. } ),
  30. new webpack.BannerPlugin( {
  31. banner: bundler.getLicenseBanner(),
  32. raw: true
  33. } )
  34. ],
  35. module: {
  36. rules: [
  37. {
  38. test: /\.js$/,
  39. use: [
  40. {
  41. loader: 'babel-loader',
  42. query: {
  43. presets: [
  44. [
  45. require( 'babel-preset-env' ),
  46. {
  47. targets: {
  48. browsers: [
  49. 'last 2 versions',
  50. 'ie >= 11'
  51. ]
  52. }
  53. }
  54. ]
  55. ]
  56. }
  57. }
  58. ]
  59. },
  60. {
  61. test: /\.svg$/,
  62. use: [ 'raw-loader' ]
  63. },
  64. {
  65. test: /\.scss$/,
  66. use: [
  67. 'style-loader',
  68. {
  69. loader: 'css-loader',
  70. options: {
  71. minimize: true
  72. }
  73. },
  74. 'sass-loader'
  75. ]
  76. }
  77. ]
  78. }
  79. };