8
0

build.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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( '../build-config' );
  12. const log = logger();
  13. const entryPoint = 'ckeditor.js';
  14. log.info( 'Creating an entry file...' );
  15. bundler.createEntryFile( entryPoint, {
  16. plugins: buildConfig.plugins,
  17. moduleName: buildConfig.moduleName,
  18. editor: buildConfig.editor,
  19. config: buildConfig.editorConfig,
  20. } );
  21. const packageRoot = path.join( __dirname, '..' );
  22. const ckeditor5Root = path.join( packageRoot, '..', '..' );
  23. const webpackParams = {
  24. cwd: ckeditor5Root,
  25. entryPoint: path.join( packageRoot, entryPoint ),
  26. destinationPath: path.join( packageRoot, buildConfig.destinationPath )
  27. };
  28. const webpackConfig = webpackUtils.getWebpackConfig( webpackParams );
  29. const webpackCompatConfig = webpackUtils.getWebpackCompatConfig( webpackParams );
  30. log.info( `Building...` );
  31. Promise.all( [
  32. runWebpack( webpackConfig ).then( () => log.info( 'Finished building "build/ckeditor.js".' ) ),
  33. runWebpack( webpackCompatConfig ).then( () => log.info( 'Finished building "build/ckeditor.compat.js".' ) )
  34. ] )
  35. .then( () => {
  36. log.info( 'Done.' );
  37. } )
  38. .catch( ( err ) => {
  39. process.exitCode = -1;
  40. log.error( err );
  41. } );
  42. function runWebpack( config ) {
  43. return new Promise( ( resolve, reject ) => {
  44. webpack( config, ( err ) => {
  45. if ( err ) {
  46. return reject( err );
  47. }
  48. return resolve();
  49. } );
  50. } );
  51. }