From 465ede2f4e76440450d336c24acddb99b0aee925 Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Thu, 11 Mar 2021 10:18:13 +0300 Subject: [PATCH] [mobile] refactoring build scripts --- vendor/framework7-react/build/build.js | 3 +- .../framework7-react/build/webpack.config.js | 36 ++-- .../build/webpack.config.pe.js | 203 ------------------ 3 files changed, 20 insertions(+), 222 deletions(-) delete mode 100644 vendor/framework7-react/build/webpack.config.pe.js diff --git a/vendor/framework7-react/build/build.js b/vendor/framework7-react/build/build.js index 6a5eeef16..3e170daa5 100644 --- a/vendor/framework7-react/build/build.js +++ b/vendor/framework7-react/build/build.js @@ -2,8 +2,7 @@ const webpack = require('webpack'); const ora = require('ora'); const rm = require('rimraf'); const chalk = require('chalk'); -const editor = process.env.TARGET_EDITOR; -const config = !process.env.TARGET_EDITOR ? require('./webpack.config.js') : require('./webpack.config.pe.js'); +const config = require('./webpack.config.js'); const env = process.env.NODE_ENV || 'development'; const target = process.env.TARGET || 'web'; diff --git a/vendor/framework7-react/build/webpack.config.js b/vendor/framework7-react/build/webpack.config.js index 4e0deb9ac..6c930e51d 100644 --- a/vendor/framework7-react/build/webpack.config.js +++ b/vendor/framework7-react/build/webpack.config.js @@ -16,14 +16,16 @@ function resolvePath(dir) { const env = process.env.NODE_ENV || 'development'; const target = process.env.TARGET || 'web'; +const editor = process.env.TARGET_EDITOR == 'cell' ? 'spreadsheeteditor' : + process.env.TARGET_EDITOR == 'slide' ? 'presentationeditor' : 'documenteditor'; module.exports = { mode: env, entry: { - app: '../../apps/documenteditor/mobile/src/app.js', + app: `../../apps/${editor}/mobile/src/app.js`, }, output: { - path: resolvePath('../../apps/documenteditor/mobile'), // path above depends on it + path: resolvePath(`../../apps/${editor}/mobile`), // path above depends on it filename: 'dist/js/[name].js', // in such form will be injected in index.html chunkFilename: 'dist/js/[name].js', publicPath: '', @@ -33,7 +35,7 @@ module.exports = { resolve: { extensions: ['.js', '.jsx', '.json'], alias: { - '@': resolvePath('../../apps/documenteditor/mobile/src'), + '@': resolvePath(`../../apps/${editor}/mobile/src`), }, modules: [path.resolve(__dirname, '..', 'node_modules'), 'node_modules'], }, @@ -63,7 +65,7 @@ module.exports = { } }, include: [ - resolvePath('../../apps/documenteditor/mobile/src'), + resolvePath(`../../apps/${editor}/mobile/src`), resolvePath('../../apps/common/mobile/lib'), resolvePath('node_modules/framework7'), @@ -106,15 +108,7 @@ module.exports = { publicPath: '../' } }), - 'css-loader', - { - loader: "less-loader", - options: { - lessOptions: { - javascriptEnabled: true - } - } - }, + 'css-loader', { loader: 'postcss-loader', options: { @@ -123,6 +117,14 @@ module.exports = { } }, }, + { + loader: "less-loader", + options: { + lessOptions: { + javascriptEnabled: true + } + } + }, ], }, { @@ -131,7 +133,7 @@ module.exports = { options: { limit: 10000, name: 'images/[name].[ext]', - outputPath: '../../../apps/documenteditor/mobile/dist', + outputPath: `../../../apps/${editor}/mobile/dist`, }, }, @@ -141,7 +143,7 @@ module.exports = { options: { limit: 10000, name: 'fonts/[name].[ext]', - outputPath: '../../../apps/documenteditor/mobile/dist/assets', + outputPath: `../../../apps/${editor}/mobile/dist/assets`, }, }, @@ -168,8 +170,8 @@ module.exports = { ]), // new CleanWebpackPlugin(), new HtmlWebpackPlugin({ - filename: '../../../apps/documenteditor/mobile/index.html', - template: '../../apps/documenteditor/mobile/src/index_dev.html', + filename: `../../../apps/${editor}/mobile/index.html`, + template: `../../apps/${editor}/mobile/src/index_dev.html`, inject: true, minify: env === 'production' ? { collapseWhitespace: true, diff --git a/vendor/framework7-react/build/webpack.config.pe.js b/vendor/framework7-react/build/webpack.config.pe.js deleted file mode 100644 index 6c930e51d..000000000 --- a/vendor/framework7-react/build/webpack.config.pe.js +++ /dev/null @@ -1,203 +0,0 @@ -const webpack = require('webpack'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const { CleanWebpackPlugin } = require('clean-webpack-plugin'); - -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); -const TerserPlugin = require('terser-webpack-plugin'); -const WorkboxPlugin = require('workbox-webpack-plugin'); - -const path = require('path'); - -function resolvePath(dir) { - return path.join(__dirname, '..', dir); -} - -const env = process.env.NODE_ENV || 'development'; -const target = process.env.TARGET || 'web'; -const editor = process.env.TARGET_EDITOR == 'cell' ? 'spreadsheeteditor' : - process.env.TARGET_EDITOR == 'slide' ? 'presentationeditor' : 'documenteditor'; - -module.exports = { - mode: env, - entry: { - app: `../../apps/${editor}/mobile/src/app.js`, - }, - output: { - path: resolvePath(`../../apps/${editor}/mobile`), // path above depends on it - filename: 'dist/js/[name].js', // in such form will be injected in index.html - chunkFilename: 'dist/js/[name].js', - publicPath: '', - hotUpdateChunkFilename: 'hot/hot-update.js', - hotUpdateMainFilename: 'hot/hot-update.json', - }, - resolve: { - extensions: ['.js', '.jsx', '.json'], - alias: { - '@': resolvePath(`../../apps/${editor}/mobile/src`), - }, - modules: [path.resolve(__dirname, '..', 'node_modules'), 'node_modules'], - }, - watch: true, - watchOptions: { - aggregateTimeout: 600, - poll: 1000, - }, - externals: { - jquery: 'jQuery' - }, - - devtool: env === 'production' ? 'source-map' : 'source-map', - optimization: { - minimizer: [new TerserPlugin({ - sourceMap: true, - })], - }, - module: { - rules: [ - { - test: /\.(mjs|js|jsx)$/, - use: { - loader: 'babel-loader', - options: { - - } - }, - include: [ - resolvePath(`../../apps/${editor}/mobile/src`), - resolvePath('../../apps/common/mobile/lib'), - resolvePath('node_modules/framework7'), - - resolvePath('node_modules/framework7-react'), - - resolvePath('node_modules/template7'), - resolvePath('node_modules/dom7'), - resolvePath('node_modules/ssr-window'), - ], - }, - - - - { - test: /\.css$/, - use: [ - (env === 'development' ? 'style-loader' : { - loader: MiniCssExtractPlugin.loader, - options: { - publicPath: '../' - } - }), - 'css-loader', - { - loader: 'postcss-loader', - options: { - config: { - path: path.resolve(__dirname, '..'), - } - }, - }, - ], - }, - { - test: /\.less$/, - use: [ - (env === 'development' ? 'style-loader' : { - loader: MiniCssExtractPlugin.loader, - options: { - publicPath: '../' - } - }), - 'css-loader', - { - loader: 'postcss-loader', - options: { - config: { - path: path.resolve(__dirname, '..'), - } - }, - }, - { - loader: "less-loader", - options: { - lessOptions: { - javascriptEnabled: true - } - } - }, - ], - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: 'images/[name].[ext]', - outputPath: `../../../apps/${editor}/mobile/dist`, - - }, - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: 'fonts/[name].[ext]', - outputPath: `../../../apps/${editor}/mobile/dist/assets`, - - }, - }, - ], - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify(env), - 'process.env.TARGET': JSON.stringify(target), - }), - - ...(env === 'production' ? [ - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true, - map: { inline: false }, - }, - }), - new webpack.optimize.ModuleConcatenationPlugin(), - ] : [ - // Development only plugins - new webpack.HotModuleReplacementPlugin(), - new webpack.NamedModulesPlugin(), - ]), - // new CleanWebpackPlugin(), - new HtmlWebpackPlugin({ - filename: `../../../apps/${editor}/mobile/index.html`, - template: `../../apps/${editor}/mobile/src/index_dev.html`, - inject: true, - minify: env === 'production' ? { - collapseWhitespace: true, - removeComments: true, - removeRedundantAttributes: true, - removeScriptTypeAttributes: true, - removeStyleLinkTypeAttributes: true, - useShortDoctype: true - } : false, - }), - new MiniCssExtractPlugin({ - filename: 'css/[name].css', - }), - new CopyWebpackPlugin({ - patterns: [ - { - noErrorOnMissing: true, - from: resolvePath('src/static'), - to: resolvePath('www/static'), - }, - { - noErrorOnMissing: true, - from: resolvePath('src/manifest.json'), - to: resolvePath('www/manifest.json'), - }, - ], - }), - ], -}; \ No newline at end of file