8
0

build.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env node
  2. /**
  3. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  4. * For licensing, see LICENSE.md.
  5. */
  6. 'use strict';
  7. const path = require( 'path' );
  8. const webpack = require( 'webpack' );
  9. const { logger, bundler } = require( '@ckeditor/ckeditor5-dev-utils' );
  10. const webpackUtils = require( '@ckeditor/ckeditor5-dev-webpack-utils' );
  11. const buildConfig = require( '../config-build' );
  12. const log = logger();
  13. const entryPoint = 'ckeditor.js';
  14. log.info( 'Creating an entry file...' );
  15. bundler.createEntryFile( entryPoint, './config-editor', {
  16. plugins: buildConfig.plugins,
  17. moduleName: buildConfig.moduleName,
  18. editor: buildConfig.editor
  19. } );
  20. const packageRoot = path.join( __dirname, '..' );
  21. const ckeditor5Root = path.join( packageRoot, '..', '..' );
  22. const webpackParams = {
  23. cwd: ckeditor5Root,
  24. entryPoint: path.join( packageRoot, entryPoint ),
  25. destinationPath: path.join( packageRoot, buildConfig.destinationPath )
  26. };
  27. const webpackConfig = webpackUtils.getWebpackConfig( webpackParams );
  28. const webpackCompatConfig = webpackUtils.getWebpackCompatConfig( webpackParams );
  29. log.info( `Building...` );
  30. Promise.all( [
  31. runWebpack( webpackConfig ).then( () => log.info( 'Finished building "build/ckeditor.js".' ) ),
  32. runWebpack( webpackCompatConfig ).then( () => log.info( 'Finished building "build/ckeditor.compat.js".' ) )
  33. ] )
  34. .then( () => {
  35. log.info( 'Done.' );
  36. } )
  37. .catch( ( err ) => {
  38. process.exitCode = -1;
  39. log.error( err );
  40. } );
  41. function runWebpack( config ) {
  42. return new Promise( ( resolve, reject ) => {
  43. webpack( config, ( err ) => {
  44. if ( err ) {
  45. return reject( err );
  46. }
  47. return resolve();
  48. } );
  49. } );
  50. }