monkeytype/frontend/webpack/config.prod.js

167 lines
4.5 KiB
JavaScript
Raw Normal View History

const { resolve } = require("path");
const { merge } = require("webpack-merge");
2023-04-20 18:59:54 +08:00
const FilemanagerPlugin = require("filemanager-webpack-plugin");
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const HtmlMinimizerPlugin = require("html-minimizer-webpack-plugin");
const JsonMinimizerPlugin = require("json-minimizer-webpack-plugin");
2022-10-13 20:26:49 +08:00
const WorkboxPlugin = require("workbox-webpack-plugin");
v1.14.1 (#2745) * updated default config to fix incorrect font button being highlighted * Convert account controller to ts (#2731) * using modular sdk * removing last script * replacing more code * unused code * removed unused code * removed unused code * importing auth * using analytics controller * importing auth and analytics * importing auth * updated git ignore * fixed path * removed live config from gitignore * added error message when failing to initialize firebase * added live config using live config when building production * removed unused code * fixed incorrect function use * added example config * added a step to the contributing guide * optional steps * fixed path * using example in source code so that github actions dont cry like little babies * using function correctly * using function correctly * ignoring live * removed * added action webpack config * bruce said "no-no" This reverts commit 0a1e5e1660200fe30378d36cb6778772e2f79cc8. * Fix * Add ignore * updated instructions * using correct functions * using correct function * missing parameter * using correct function * using correct function * removed ts ignores * using new functions * removed refresh * using new functions * merge fix * fixed merge * regenereated lockfile * using correct function * defaulting to the email thats already entered * storing default snap in a file * optional parameter * made parameters non optional * converted file to ts * removed unused parameters * removed unnecessary optional chaining * destructuring array * added a function to create error message * removed type * removed duplicate gitignore * removed no check Co-authored-by: Bruception <bberr022@fiu.edu> * Include dev branch in CI (#2739) * Decreased filesize and introduced chunk splitting (#2732) Rizwanmustafa * Decreased filesize * Introduce splitting for vendors * Added HTML webpack plugin for dynamic change of chunkhash and minification on production * Added bundle analyzer plugin for webpack * Prevent analyzer from opening on its own * updated contributors list * Package lock update * Created separate webpack config for analysing bundle * Standardize paths in webpack base config * Added devtool in dev webpack config * Minor issues * Based audit config off of the production config, saved exact packages and renamed some constants * Saved exact version of packages * Rename Config * Added intellisense for webpack configs * Added script for using audit config * Simple changes * Removed unnecessary cd and replaced webpack with npx wepback * added npm script accessible from root dir since audit is now a separate script, reenabled auto opening Co-authored-by: Miodec <bartnikjack@gmail.com> * Enable live reloading (#2738) bruception * Enable live reloading * Update scripts and documentation * Fix resolve * Use resolve * Fix layoutfluid timer warnings (#2740) Ferotiq * reduced date-fns import size * using inline source map so that code is debuggable * removed tinycolor2 dependency * Migrate Chart.js to 3.7.1 (#2735) DanGonite57 * Migrate Chart.js to 3.7.1 * Show funbox label with StartGraphsAtZero disabled * Fix label positioners * Include dev branch in CI (#2739) * Remove draw animation * Avoid RangeError with no data * Disable account chart initial render animation * Add temporary type assertion for options.animation * Test disabling animations via updateColors * Test re-update chart after resetting animation duration * Test dataset specific animation duration * Disable animations for now * Remove unused annotation Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com> * installed dev dependency to stop audit from complaining * removed mr mime dev dependency regenerate package-lock * not updating live burst when its disabled * using vanilla js to increase performance * updating chart once instead of 3 times * made log async * increased minimum wordset length to disable repeating words to 4 this stops infinite A B C sequences closes #2742 * increased tick padding * added some padding to stop data points from being cut off * fixed account graphs not being responsive * removed unnecessary style * updated button active color * Server version (#2746) Bruception * Add server version * typo * Fix logic * Moved to utility * Actually save version * Move logic order * updated metric name * removed unnecessary else Co-authored-by: Bruception <bberr022@fiu.edu> Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com> Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com> Co-authored-by: Evan <64989416+Ferotiq@users.noreply.github.com> Co-authored-by: DanGonite57 <danzinc57@gmail.com>
2022-03-22 04:22:47 +08:00
const BASE_CONFIG = require("./config.base");
function pad(numbers, maxLength, fillString) {
return numbers.map((number) =>
number.toString().padStart(maxLength, fillString)
);
}
const { COMMIT_HASH = "NO_HASH" } = process.env;
v1.14.1 (#2745) * updated default config to fix incorrect font button being highlighted * Convert account controller to ts (#2731) * using modular sdk * removing last script * replacing more code * unused code * removed unused code * removed unused code * importing auth * using analytics controller * importing auth and analytics * importing auth * updated git ignore * fixed path * removed live config from gitignore * added error message when failing to initialize firebase * added live config using live config when building production * removed unused code * fixed incorrect function use * added example config * added a step to the contributing guide * optional steps * fixed path * using example in source code so that github actions dont cry like little babies * using function correctly * using function correctly * ignoring live * removed * added action webpack config * bruce said "no-no" This reverts commit 0a1e5e1660200fe30378d36cb6778772e2f79cc8. * Fix * Add ignore * updated instructions * using correct functions * using correct function * missing parameter * using correct function * using correct function * removed ts ignores * using new functions * removed refresh * using new functions * merge fix * fixed merge * regenereated lockfile * using correct function * defaulting to the email thats already entered * storing default snap in a file * optional parameter * made parameters non optional * converted file to ts * removed unused parameters * removed unnecessary optional chaining * destructuring array * added a function to create error message * removed type * removed duplicate gitignore * removed no check Co-authored-by: Bruception <bberr022@fiu.edu> * Include dev branch in CI (#2739) * Decreased filesize and introduced chunk splitting (#2732) Rizwanmustafa * Decreased filesize * Introduce splitting for vendors * Added HTML webpack plugin for dynamic change of chunkhash and minification on production * Added bundle analyzer plugin for webpack * Prevent analyzer from opening on its own * updated contributors list * Package lock update * Created separate webpack config for analysing bundle * Standardize paths in webpack base config * Added devtool in dev webpack config * Minor issues * Based audit config off of the production config, saved exact packages and renamed some constants * Saved exact version of packages * Rename Config * Added intellisense for webpack configs * Added script for using audit config * Simple changes * Removed unnecessary cd and replaced webpack with npx wepback * added npm script accessible from root dir since audit is now a separate script, reenabled auto opening Co-authored-by: Miodec <bartnikjack@gmail.com> * Enable live reloading (#2738) bruception * Enable live reloading * Update scripts and documentation * Fix resolve * Use resolve * Fix layoutfluid timer warnings (#2740) Ferotiq * reduced date-fns import size * using inline source map so that code is debuggable * removed tinycolor2 dependency * Migrate Chart.js to 3.7.1 (#2735) DanGonite57 * Migrate Chart.js to 3.7.1 * Show funbox label with StartGraphsAtZero disabled * Fix label positioners * Include dev branch in CI (#2739) * Remove draw animation * Avoid RangeError with no data * Disable account chart initial render animation * Add temporary type assertion for options.animation * Test disabling animations via updateColors * Test re-update chart after resetting animation duration * Test dataset specific animation duration * Disable animations for now * Remove unused annotation Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com> * installed dev dependency to stop audit from complaining * removed mr mime dev dependency regenerate package-lock * not updating live burst when its disabled * using vanilla js to increase performance * updating chart once instead of 3 times * made log async * increased minimum wordset length to disable repeating words to 4 this stops infinite A B C sequences closes #2742 * increased tick padding * added some padding to stop data points from being cut off * fixed account graphs not being responsive * removed unnecessary style * updated button active color * Server version (#2746) Bruception * Add server version * typo * Fix logic * Moved to utility * Actually save version * Move logic order * updated metric name * removed unnecessary else Co-authored-by: Bruception <bberr022@fiu.edu> Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com> Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com> Co-authored-by: Evan <64989416+Ferotiq@users.noreply.github.com> Co-authored-by: DanGonite57 <danzinc57@gmail.com>
2022-03-22 04:22:47 +08:00
/** @type { import('webpack').Configuration } */
const PRODUCTION_CONFIG = {
mode: "production",
module: {
rules: [
{
test: /version\.ts$/,
loader: "string-replace-loader",
options: {
search: /^export const CLIENT_VERSION =.*/,
replace() {
const date = new Date();
const versionPrefix = pad(
[date.getFullYear(), date.getMonth() + 1, date.getDate()],
2,
"0"
).join(".");
const versionSuffix = pad(
[date.getHours(), date.getMinutes()],
2,
"0"
).join(".");
const version = [versionPrefix, versionSuffix].join("_");
return `export const CLIENT_VERSION = "${version}.${COMMIT_HASH}";`;
},
flags: "g",
},
},
{
test: /firebase\.ts$/,
loader: "string-replace-loader",
options: {
search: /\.\/constants\/firebase-config/,
replace() {
return "./constants/firebase-config-live";
},
flags: "g",
},
},
],
},
optimization: {
minimize: true,
minimizer: [
`...`,
new HtmlMinimizerPlugin(),
new JsonMinimizerPlugin(),
new CssMinimizerPlugin(),
],
},
plugins: [
2023-04-20 18:59:54 +08:00
new FilemanagerPlugin({
events: {
onEnd: {
delete: [resolve(__dirname, "../public/html")],
},
},
}),
2022-10-13 20:26:49 +08:00
new WorkboxPlugin.GenerateSW({
// these options encourage the ServiceWorkers to get in there fast
// and not allow any straggling "old" SWs to hang around
clientsClaim: true,
skipWaiting: false,
//include the generated css and js files
maximumFileSizeToCacheInBytes: 11000000,
2022-12-08 21:02:48 +08:00
cleanupOutdatedCaches: true,
2022-10-14 16:59:07 +08:00
exclude: [
2022-12-03 02:50:48 +08:00
// /html\/.*\.html/,
// /LICENSE\.txt/,
// /\.DS_Store/,
// /\.map$/,
// /^manifest.*\.js$/,
// /languages\/.*\.json/,
// /quotes\/.*\.json/,
// /themes\/.*\.css/,
// /challenges\/.*\.txt/,
// /sound\/.*\.wav/,
// /images\/.*\.(png|jpg)/,
// /webfonts\/.+/,
/./,
],
runtimeCaching: [
2022-12-03 02:50:48 +08:00
// {
// urlPattern: /.+\.(jpg|jpeg|gif|png|svg)/,
// handler: "CacheFirst",
// },
// {
// urlPattern: /.+\.(eot|otf|ttf|ttc|woff|woff2)/,
// handler: "CacheFirst",
// },
// // {
// // urlPattern: /.+\.(json|wav|txt|css)/,
// // handler: "NetworkFirst",
// // },
// {
// urlPattern: /.+\.min\.(js|css)/,
// handler: "CacheFirst",
// },
// {
// urlPattern: /.+\..{8}\.(js|css)/,
// handler: "CacheFirst",
// },
{
2022-12-08 21:02:48 +08:00
urlPattern: /\/\/monkeytype.com.+/,
2022-12-03 02:50:48 +08:00
handler: "NetworkFirst",
2022-12-08 21:02:48 +08:00
options: {},
},
2022-12-03 02:50:48 +08:00
// {
// urlPattern: /languages\/.*/,
// handler: "StaleWhileRevalidate",
// },
// {
// urlPattern: /quotes\/.*/,
// handler: "StaleWhileRevalidate",
// },
// {
// urlPattern: /themes\/.*/,
// handler: "StaleWhileRevalidate",
// },
// {
// urlPattern: /challenges\/.*/,
// handler: "StaleWhileRevalidate",
// },
// {
// urlPattern: /layouts\/.*/,
// handler: "StaleWhileRevalidate",
// },
// {
// urlPattern: /sound\/.*\.wav/,
// handler: "StaleWhileRevalidate",
// },
// {
// urlPattern: /images\/.*\.(png|jpg)/,
// handler: "StaleWhileRevalidate",
// },
// {
// urlPattern: /webfonts\/.+/,
// handler: "CacheFirst",
// },
2022-10-14 16:59:07 +08:00
],
2022-10-13 20:26:49 +08:00
}),
],
};
v1.14.1 (#2745) * updated default config to fix incorrect font button being highlighted * Convert account controller to ts (#2731) * using modular sdk * removing last script * replacing more code * unused code * removed unused code * removed unused code * importing auth * using analytics controller * importing auth and analytics * importing auth * updated git ignore * fixed path * removed live config from gitignore * added error message when failing to initialize firebase * added live config using live config when building production * removed unused code * fixed incorrect function use * added example config * added a step to the contributing guide * optional steps * fixed path * using example in source code so that github actions dont cry like little babies * using function correctly * using function correctly * ignoring live * removed * added action webpack config * bruce said "no-no" This reverts commit 0a1e5e1660200fe30378d36cb6778772e2f79cc8. * Fix * Add ignore * updated instructions * using correct functions * using correct function * missing parameter * using correct function * using correct function * removed ts ignores * using new functions * removed refresh * using new functions * merge fix * fixed merge * regenereated lockfile * using correct function * defaulting to the email thats already entered * storing default snap in a file * optional parameter * made parameters non optional * converted file to ts * removed unused parameters * removed unnecessary optional chaining * destructuring array * added a function to create error message * removed type * removed duplicate gitignore * removed no check Co-authored-by: Bruception <bberr022@fiu.edu> * Include dev branch in CI (#2739) * Decreased filesize and introduced chunk splitting (#2732) Rizwanmustafa * Decreased filesize * Introduce splitting for vendors * Added HTML webpack plugin for dynamic change of chunkhash and minification on production * Added bundle analyzer plugin for webpack * Prevent analyzer from opening on its own * updated contributors list * Package lock update * Created separate webpack config for analysing bundle * Standardize paths in webpack base config * Added devtool in dev webpack config * Minor issues * Based audit config off of the production config, saved exact packages and renamed some constants * Saved exact version of packages * Rename Config * Added intellisense for webpack configs * Added script for using audit config * Simple changes * Removed unnecessary cd and replaced webpack with npx wepback * added npm script accessible from root dir since audit is now a separate script, reenabled auto opening Co-authored-by: Miodec <bartnikjack@gmail.com> * Enable live reloading (#2738) bruception * Enable live reloading * Update scripts and documentation * Fix resolve * Use resolve * Fix layoutfluid timer warnings (#2740) Ferotiq * reduced date-fns import size * using inline source map so that code is debuggable * removed tinycolor2 dependency * Migrate Chart.js to 3.7.1 (#2735) DanGonite57 * Migrate Chart.js to 3.7.1 * Show funbox label with StartGraphsAtZero disabled * Fix label positioners * Include dev branch in CI (#2739) * Remove draw animation * Avoid RangeError with no data * Disable account chart initial render animation * Add temporary type assertion for options.animation * Test disabling animations via updateColors * Test re-update chart after resetting animation duration * Test dataset specific animation duration * Disable animations for now * Remove unused annotation Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com> * installed dev dependency to stop audit from complaining * removed mr mime dev dependency regenerate package-lock * not updating live burst when its disabled * using vanilla js to increase performance * updating chart once instead of 3 times * made log async * increased minimum wordset length to disable repeating words to 4 this stops infinite A B C sequences closes #2742 * increased tick padding * added some padding to stop data points from being cut off * fixed account graphs not being responsive * removed unnecessary style * updated button active color * Server version (#2746) Bruception * Add server version * typo * Fix logic * Moved to utility * Actually save version * Move logic order * updated metric name * removed unnecessary else Co-authored-by: Bruception <bberr022@fiu.edu> Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com> Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com> Co-authored-by: Evan <64989416+Ferotiq@users.noreply.github.com> Co-authored-by: DanGonite57 <danzinc57@gmail.com>
2022-03-22 04:22:47 +08:00
module.exports = merge(BASE_CONFIG, PRODUCTION_CONFIG);