diff --git a/config/paths.js b/config/paths.js deleted file mode 100644 index 2060badce016cbe023d2af06e9a9015114a77858..0000000000000000000000000000000000000000 --- a/config/paths.js +++ /dev/null @@ -1,98 +0,0 @@ -const path = require('path'); -const fs = require('fs'); -const url = require('url'); - -// Make sure any symlinks in the project folder are resolved: -// https://github.com/facebook/create-react-app/issues/637 -const appDirectory = fs.realpathSync(process.cwd()); - -/** - * - * @param relativePath - * @returns {string} - */ -const resolveApp = relativePath => path.resolve(appDirectory, relativePath); - -const envPublicUrl = process.env.PUBLIC_URL; - -/** - * - * @param inputPath - * @param needsSlash - * @returns {*} - */ -function ensureSlash(inputPath, needsSlash) { - const hasSlash = inputPath.endsWith('/'); - if (hasSlash && !needsSlash) { - return inputPath.substr(0, inputPath.length - 1); - } else if (!hasSlash && needsSlash) { - return `${inputPath}/`; - } else { - return inputPath; - } -} - -/** - * - * @param appPackageJson - * @returns {string | *} - */ -const getPublicUrl = appPackageJson => envPublicUrl || require(appPackageJson).homepage; - -/** - * - * @param appPackageJson - * @returns {*} - */ -function getServedPath(appPackageJson) { - const publicUrl = getPublicUrl(appPackageJson); - const servedUrl = - envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/'); - return ensureSlash(servedUrl, true); -} - -const moduleFileExtensions = [ - 'web.mjs', - 'mjs', - 'web.js', - 'js', - 'web.ts', - 'ts', - 'web.tsx', - 'tsx', - 'json', - 'web.jsx', - 'jsx', -]; - -/** - * - * @param resolveFn - * @param filePath - * @returns {*} - */ -const resolveModule = (resolveFn, filePath) => { - const extension = moduleFileExtensions.find(extension => fs.existsSync(resolveFn(`${filePath}.${extension}`))); - - if (extension) { - return resolveFn(`${filePath}.${extension}`); - } - - return resolveFn(`${filePath}.js`); -}; - -module.exports = { - dotenv: resolveApp('.env'), - appPath: resolveApp('.'), - appBuild: resolveApp('build'), - appDist: resolveApp('dist'), - appIndexJs: resolveModule(resolveApp, 'src/index'), - appPackageJson: resolveApp('package.json'), - appSrc: resolveApp('src'), - testsSetup: resolveModule(resolveApp, 'src/setupTests'), - appNodeModules: resolveApp('node_modules'), - publicUrl: getPublicUrl(resolveApp('package.json')), - servedPath: getServedPath(resolveApp('package.json')), -}; - -module.exports.moduleFileExtensions = moduleFileExtensions; diff --git a/webpack.config.js b/webpack.config.js index 292c2e3b62e4cf3933bd0a59d2bee331e9c3b649..3f78b6cad3e2a3339c9801046e1b21ef5bb89b0a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,8 +1,8 @@ const path = require('path'); +const fs = require('fs'); const webpack = require('webpack'); const TerserPlugin = require('terser-webpack-plugin'); const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); -const paths = require('./config/paths'); /** */ const baseConfig = mode => ({ @@ -10,7 +10,7 @@ const baseConfig = mode => ({ module: { rules: [ { - include: paths.appPath, // CRL + include: path.resolve(fs.realpathSync(process.cwd()), '.'), // CRL loader: require.resolve('babel-loader'), options: { // Save disk space when time isn't as important