Browse Source

Moved Webpack configs to this repository for simpler tinkering with them.

Piotrek Koszuliński 8 years ago
parent
commit
609c0093f2

+ 9 - 0
packages/ckeditor5-build-classic/bin/build-ckeditor-compat.sh

@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+echo "Building 'build/ckeditor.compat.js'..."
+echo ""
+
+webpack --config webpack.compat.config.js
+
+echo ""
+echo "Done."

+ 9 - 0
packages/ckeditor5-build-classic/bin/build-ckeditor.sh

@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+echo "Building 'build/ckeditor.js'..."
+echo ""
+
+webpack
+
+echo ""
+echo "Done."

+ 0 - 59
packages/ckeditor5-build-classic/bin/build.js

@@ -1,59 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
-
-'use strict';
-
-const path = require( 'path' );
-const webpack = require( 'webpack' );
-const { logger, bundler } = require( '@ckeditor/ckeditor5-dev-utils' );
-const webpackUtils = require( '@ckeditor/ckeditor5-dev-webpack-utils' );
-const buildConfig = require( '../config-build' );
-const log = logger();
-const entryPoint = 'ckeditor.js';
-
-log.info( 'Creating the entry file...' );
-
-bundler.createEntryFile( entryPoint, './config-editor', {
-	plugins: buildConfig.plugins,
-	moduleName: buildConfig.moduleName,
-	editor: buildConfig.editor
-} );
-
-const packageRoot = path.join( __dirname, '..' );
-const webpackParams = {
-	entryPoint: path.join( packageRoot, entryPoint ),
-	destinationPath: path.join( packageRoot, buildConfig.destinationPath )
-};
-const webpackConfig = webpackUtils.getWebpackConfig( webpackParams );
-const webpackCompatConfig = webpackUtils.getWebpackCompatConfig( webpackParams );
-
-log.info( `Building...` );
-
-Promise.all( [
-	runWebpack( webpackConfig ).then( () => log.info( 'Finished building "build/ckeditor.js".' ) ),
-	runWebpack( webpackCompatConfig ).then( () => log.info( 'Finished building "build/ckeditor.compat.js".' ) )
-] )
-.then( () => {
-	log.info( 'Done.' );
-} )
-.catch( ( err ) => {
-	process.exitCode = -1;
-
-	log.error( err );
-} );
-
-function runWebpack( config ) {
-	return new Promise( ( resolve, reject ) => {
-		webpack( config, ( err ) => {
-			if ( err ) {
-				return reject( err );
-			}
-
-			return resolve();
-		} );
-	} );
-}

+ 17 - 0
packages/ckeditor5-build-classic/bin/create-entry-file.js

@@ -0,0 +1,17 @@
+#!/usr/bin/env node
+
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+'use strict';
+
+const { bundler } = require( '@ckeditor/ckeditor5-dev-utils' );
+const buildConfig = require( '../config-build' );
+
+console.log( 'Creating the entry file...' );
+
+bundler.createEntryFile( 'ckeditor.js', './config-editor', buildConfig );
+
+console.log( 'Done.' );

+ 2 - 3
packages/ckeditor5-build-classic/config-build.js

@@ -6,8 +6,8 @@
 'use strict';
 
 module.exports = {
-	destinationPath: './build/',
 	editor: '@ckeditor/ckeditor5-editor-classic/src/classic',
+	moduleName: 'ClassicEditor',
 	plugins: [
 		'@ckeditor/ckeditor5-autoformat/src/autoformat',
 		'@ckeditor/ckeditor5-clipboard/src/clipboard',
@@ -24,6 +24,5 @@ module.exports = {
 		'@ckeditor/ckeditor5-paragraph/src/paragraph',
 		'@ckeditor/ckeditor5-typing/src/typing',
 		'@ckeditor/ckeditor5-undo/src/undo',
-	],
-	moduleName: 'ClassicEditor'
+	]
 };

+ 11 - 4
packages/ckeditor5-build-classic/package.json

@@ -3,7 +3,7 @@
   "version": "0.0.1",
   "description": "CKEditor 5 classic build.",
   "keywords": [],
-  "main": "./build/ckeditor.es6.js",
+  "main": "./build/ckeditor.js",
   "dependencies": {
     "@ckeditor/ckeditor5-editor-classic": "*",
     "@ckeditor/ckeditor5-autoformat": "*",
@@ -20,8 +20,12 @@
   },
   "devDependencies": {
     "@ckeditor/ckeditor5-dev-utils": "^2.4.2",
-    "@ckeditor/ckeditor5-dev-webpack-utils": "^1.0.0",
-    "webpack": "^2.2.1"
+    "babel-core": "^6.24.0",
+    "babel-loader": "^6.4.0",
+    "babel-preset-env": "^1.2.2",
+    "babili-webpack-plugin": "^0.0.11",
+    "regenerator-runtime": "^0.10.3",
+    "webpack": "^2.3.2"
   },
   "engines": {
     "node": ">=6.0.0",
@@ -36,6 +40,9 @@
     "url": "https://github.com/ckeditor/ckeditor5-build-classic.git"
   },
   "scripts": {
-    "build": "node ./bin/build.js"
+    "build": "npm run create-entry-file && npm run build-ckeditor && npm run build-ckeditor-compat",
+    "create-entry-file": "./bin/create-entry-file.js",
+    "build-ckeditor": "./bin/build-ckeditor.sh",
+    "build-ckeditor-compat": "./bin/build-ckeditor-compat.sh"
   }
 }

+ 73 - 0
packages/ckeditor5-build-classic/webpack.compat.config.js

@@ -0,0 +1,73 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+'use strict';
+
+const path = require( 'path' );
+const webpack = require( 'webpack' );
+const { bundler } = require( '@ckeditor/ckeditor5-dev-utils' );
+
+const BabiliPlugin = require( 'babili-webpack-plugin' );
+
+module.exports = {
+	devtool: 'source-map',
+
+	entry: [
+		require.resolve( 'regenerator-runtime/runtime.js' ),
+		path.resolve( __dirname, 'ckeditor.js' )
+	],
+
+	output: {
+		path: path.resolve( __dirname, 'build' ),
+		filename: 'ckeditor.compat.js',
+		libraryTarget: 'umd'
+	},
+
+	plugins: [
+		new BabiliPlugin( null, {
+			comments: false
+		} ),
+		new webpack.BannerPlugin( {
+			banner: bundler.getLicenseBanner(),
+			raw: true
+		} )
+	],
+
+	module: {
+		rules: [
+			{
+				test: /\.js$/,
+				use: [
+					{
+						loader: 'babel-loader',
+						query: {
+							presets: [
+								[
+									require( 'babel-preset-env' ),
+									{
+										targets: {
+											browsers: [
+												'last 2 versions',
+												'ie >= 11'
+											]
+										}
+									}
+								]
+							]
+						}
+					}
+				]
+			},
+			{
+				test: /\.svg$/,
+				use: [ 'raw-loader' ]
+			},
+			{
+				test: /\.scss$/,
+				use: [ 'style-loader', 'css-loader', 'sass-loader' ]
+			}
+		]
+	}
+};

+ 47 - 0
packages/ckeditor5-build-classic/webpack.config.js

@@ -0,0 +1,47 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+'use strict';
+
+const path = require( 'path' );
+const webpack = require( 'webpack' );
+const { bundler } = require( '@ckeditor/ckeditor5-dev-utils' );
+
+const BabiliPlugin = require( 'babili-webpack-plugin' );
+
+module.exports = {
+	devtool: 'source-map',
+
+	entry: path.resolve( __dirname, 'ckeditor.js' ),
+
+	output: {
+		path: path.resolve( __dirname, 'build' ),
+		filename: 'ckeditor.js',
+		libraryTarget: 'umd'
+	},
+
+	plugins: [
+		new BabiliPlugin( null, {
+			comments: false
+		} ),
+		new webpack.BannerPlugin( {
+			banner: bundler.getLicenseBanner(),
+			raw: true
+		} )
+	],
+
+	module: {
+		rules: [
+			{
+				test: /\.svg$/,
+				use: [ 'raw-loader' ]
+			},
+			{
+				test: /\.scss$/,
+				use: [ 'style-loader', 'css-loader', 'sass-loader' ]
+			}
+		]
+	}
+};