scrabble-solver
Version:
Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.
56 lines (52 loc) • 1.52 kB
JavaScript
/* eslint-disable @typescript-eslint/no-var-requires */
const fs = require('fs');
const path = require('path');
const WorkboxPlugin = require('workbox-webpack-plugin');
const tsConfig = fs.readFileSync(path.resolve(__dirname, 'tsconfig.json'), 'utf-8');
const tsConfigJson = JSON.parse(tsConfig);
const tsConfigAliases = Object.keys(tsConfigJson.compilerOptions.paths).reduce(
(result, key) => ({
...result,
[key]: path.resolve(__dirname, tsConfigJson.compilerOptions.paths[key][0]),
}),
{},
);
module.exports = {
compress: false,
eslint: {
ignoreDuringBuilds: true,
},
reactStrictMode: true,
webpack: (config) => ({
...config,
resolve: {
...config.resolve,
alias: {
...config.resolve.alias,
...tsConfigAliases,
},
},
module: {
...config.module,
rules: [
...config.module.rules,
{
test: /\.svg$/,
include: [path.resolve(__dirname, 'src/icons')],
issuer: /\.tsx?$/,
use: ['@svgr/webpack'],
},
],
},
plugins: [
...config.plugins,
process.env.NODE_ENV === 'production'
? new WorkboxPlugin.InjectManifest({
swSrc: path.join(__dirname, 'src/service-worker/index.ts'),
swDest: path.join(__dirname, 'public/service-worker.js'),
exclude: [/\.map$/, /\.next/, /_next/, /manifest/, /\.htaccess$/, /.*\/static\/.*/, /service-worker\.js$/],
})
: undefined,
].filter(Boolean),
}),
};