Skip to content
Snippets Groups Projects
Commit 951c4063 authored by Chris Beer's avatar Chris Beer
Browse files

Remove configs/paths.js

parent 0c64d783
Branches
No related tags found
No related merge requests found
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;
const path = require('path'); const path = require('path');
const fs = require('fs');
const webpack = require('webpack'); const webpack = require('webpack');
const TerserPlugin = require('terser-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
const paths = require('./config/paths');
/** */ /** */
const baseConfig = mode => ({ const baseConfig = mode => ({
...@@ -10,7 +10,7 @@ const baseConfig = mode => ({ ...@@ -10,7 +10,7 @@ const baseConfig = mode => ({
module: { module: {
rules: [ rules: [
{ {
include: paths.appPath, // CRL include: path.resolve(fs.realpathSync(process.cwd()), '.'), // CRL
loader: require.resolve('babel-loader'), loader: require.resolve('babel-loader'),
options: { options: {
// Save disk space when time isn't as important // Save disk space when time isn't as important
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment