8
0

webpack.config.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. /* eslint-env node */
  7. const path = require( 'path' );
  8. const webpack = require( 'webpack' );
  9. const { bundler } = require( '@ckeditor/ckeditor5-dev-utils' );
  10. const { getPostCssConfig } = require( '@ckeditor/ckeditor5-dev-utils' ).styles;
  11. const CKEditorWebpackPlugin = require( '@ckeditor/ckeditor5-dev-webpack-plugin' );
  12. const BabiliPlugin = require( 'babel-minify-webpack-plugin' );
  13. const buildConfig = require( './build-config' );
  14. module.exports = {
  15. devtool: 'source-map',
  16. entry: path.resolve( __dirname, 'src', 'ckeditor.js' ),
  17. output: {
  18. path: path.resolve( __dirname, 'build' ),
  19. filename: 'ckeditor.js',
  20. libraryTarget: 'umd',
  21. libraryExport: 'default',
  22. library: buildConfig.moduleName
  23. },
  24. plugins: [
  25. new CKEditorWebpackPlugin( {
  26. language: buildConfig.config.language,
  27. additionalLanguages: 'all'
  28. } ),
  29. new BabiliPlugin( null, {
  30. comments: false
  31. } ),
  32. new webpack.BannerPlugin( {
  33. banner: bundler.getLicenseBanner(),
  34. raw: true
  35. } ),
  36. new webpack.optimize.ModuleConcatenationPlugin()
  37. ],
  38. module: {
  39. rules: [
  40. {
  41. test: /\.svg$/,
  42. use: [ 'raw-loader' ]
  43. },
  44. {
  45. test: /\.css$/,
  46. use: [
  47. {
  48. loader: 'style-loader',
  49. options: {
  50. singleton: true
  51. }
  52. },
  53. {
  54. loader: 'postcss-loader',
  55. options: getPostCssConfig( {
  56. themeImporter: {
  57. themePath: require.resolve( '@ckeditor/ckeditor5-theme-lark' )
  58. },
  59. minify: true
  60. } )
  61. },
  62. ]
  63. }
  64. ]
  65. }
  66. };