diff --git a/__old.webpack.config.js b/__old.webpack.config.js deleted file mode 100644 index fd3e5c2a..00000000 --- a/__old.webpack.config.js +++ /dev/null @@ -1,199 +0,0 @@ -// AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later -const path = require ('path') -const WebpackSweetEntry = require('webpack-sweet-entry'); -const CleanWebpackPlugin = require('clean-webpack-plugin'); -const StringReplacePlugin = require("string-replace-webpack-plugin"); -const ExtractTextPlugin = require("extract-text-webpack-plugin"); -const webpack = require("webpack"); -const CopyWebpackPlugin = require('copy-webpack-plugin') -const merge = require('webpack-merge'); -const CompressionPlugin = require("compression-webpack-plugin"); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin') - -const config_button=require('./config/settings.json'); - -const sourcePath = path.join(__dirname, 'client'); -const buildPath = path.join(__dirname, 'public/client'); -const translationPath = path.join(__dirname, 'public/javascripts/_final.js') -const reactEntrySourcePath = path.join(__dirname, 'javascripts') -const reactEntryOutputPath = path.join(__dirname, 'public') - - -let inProduction = process.env.NODE_ENV === 'production' - -let devToProdLibraries = { - react:{ - debug: "node_modules/react/umd/react.development.js", - production: "node_modules/react/umd/react.production.min.js" - }, - reactDom: { - debug: "node_modules/react-dom/umd/react-dom.development.js", - production: "node_modules/react-dom/umd/react-dom.production.min.js" - } -} - - - -let common_rules= [ - - // configure replacements for file patterns - { - test: /donate-button.v2.js$/, - loader: [ - {loader: 'string-replace-loader', - options: { - search: 'REPLACE_FULL_HOST', - replace: config_button.button.url, - }, - }, - { - loader: 'string-replace-loader', - options: { - search: 'REPLACE_CSS_URL', - replace: config_button.button.css, - }, - }, - "babel-loader"] - }, - { test: /\.tsx?$/, loader:"ts-loader"}, - { test: /\.js$/, exclude: /node_modules|froala/, loader: "babel-loader" }, - { test: /\.es6$/, exclude: /node_modules/, loader: "babel-loader" } -] - - -let targets = { - base: { - module:{ - rules: common_rules - }, - entry: WebpackSweetEntry(path.resolve(sourcePath, 'js/**/page.js'), 'js', 'js'), - output: { - path: path.resolve(buildPath, 'js'), - filename: '[name].js' - }, - plugins: [ - new CleanWebpackPlugin([path.resolve(buildPath, 'js')]) - ] - } - , - button: { - module:{ - rules: common_rules - }, - entry: path.resolve(sourcePath, 'js/widget/donate-button.v2.js'), - output: { - path: path.resolve(path.join(__dirname, 'public', 'js')), - filename: 'donate-button.v2.js' - }, - - plugins: [ - // an instance of the plugin must be present - new StringReplacePlugin() - ] - }, - translations: { - module:{ - rules: common_rules - }, - entry: translationPath, - output: { - path: path.join(buildPath, 'js'), - filename: 'i18n.js' - } - }, - css: { - module: { - rules: [ - { - test: /\.css$/, - use: ExtractTextPlugin.extract({ - use: [ - { - loader: 'css-loader', - options: {import: true, importLoaders: 1} - } - , 'postcss-loader'] - } - ) - }, - ] - }, - entry: path.resolve(sourcePath, 'css/global/page.css'), - output: { - path: path.resolve(buildPath, 'css/global'), - filename: 'page.css' - }, - plugins: [ - new ExtractTextPlugin('page.css'), - new CleanWebpackPlugin([path.resolve(buildPath, 'css')]) - ] - }, - bootstrap: { - entry: ['bootstrap-loader'], - output: { - path: path.resolve(buildPath, 'css'), - filename: 'bootstrap.css' - }, - plugins: [ - new ExtractTextPlugin('bootstrap.css') - ] - }, - loading_indicator: { - module:{ - rules: common_rules - }, - entry: path.resolve(reactEntrySourcePath, "app", "loading_indicator.ts"), - output: { - path: path.resolve(reactEntryOutputPath, 'app'), - filename: 'loading_indicator.js' - }, - - }, - react: { - module:{ - rules: common_rules - }, - entry: WebpackSweetEntry(path.resolve(reactEntrySourcePath, "app/*.tsx"), 'ts', 'app'), - output: { - path: path.resolve(reactEntryOutputPath, 'app'), - filename: '[name].js' - }, - resolve: { - extensions: [".ts", ".tsx", ".js", ".json"], - }, - plugins: [ - new CleanWebpackPlugin([path.resolve(reactEntryOutputPath, 'app')]), - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - }), - new CopyWebpackPlugin([{from: inProduction ? devToProdLibraries.react.production : devToProdLibraries.react.debug, to: path.resolve('public', 'app', 'react.js')}]), - new CopyWebpackPlugin([{from: inProduction ? devToProdLibraries.reactDom.production : devToProdLibraries.reactDom.debug, to:path.resolve('public', 'app', 'react-dom.js')}]) - - ], - externals: { - 'react': 'React', - 'react-dom': 'ReactDOM', - 'i18n': 'I18n' - } - } -} - -let mergeToTargets = { - devtool: 'inline-source-map', -} - -if (inProduction) - mergeToTargets = { - plugins: [ - new UglifyJsPlugin(), - new CompressionPlugin({ - asset: '[path].gz' - }) - ]} -let output = [] -for(let name in targets){ - output.push(merge(targets[name], mergeToTargets)); -} - - -module.exports = output \ No newline at end of file