UNPKG

1.62 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.default = findUserWebpackConfig;
5
6var _fs = _interopRequireDefault(require("fs"));
7
8var _path = _interopRequireDefault(require("path"));
9
10function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12// react-scripts <= 2.1.1
13const CREATE_REACT_APP_WEBPACK_CONFIG_OLD = 'react-scripts/config/webpack.config.dev'; // react-scripts > 2.1.1
14
15const CREATE_REACT_APP_WEBPACK_CONFIG = 'react-scripts/config/webpack.config';
16const USER_WEBPACK_CONFIG_NAMES = ['webpack.config.js', 'webpackfile.js'];
17
18const absolutize = filePath => _path.default.resolve(process.cwd(), filePath);
19/**
20 * Find user’s Webpack config and return its path.
21 * Fixed location for Create React App or webpack.config.js in the root directory.
22 * Returns false if config not found.
23 *
24 * @param {Function} resolve
25 * @return {string|boolean}
26 */
27
28
29function findUserWebpackConfig(resolve) {
30 resolve = resolve || require.resolve;
31
32 try {
33 // Create React App <= 2.1.1
34 return resolve(CREATE_REACT_APP_WEBPACK_CONFIG_OLD);
35 } catch (err) {
36 try {
37 // Create React App > 2.1.1
38 return resolve(CREATE_REACT_APP_WEBPACK_CONFIG);
39 } catch (innerErr) {
40 // Check in the root folder
41 // FIXME: This looks like a bug in ESLint
42 // eslint-disable-next-line no-unused-vars
43 for (const configFile of USER_WEBPACK_CONFIG_NAMES) {
44 const absoluteConfigFile = absolutize(configFile);
45
46 if (_fs.default.existsSync(absoluteConfigFile)) {
47 return absoluteConfigFile;
48 }
49 }
50 }
51 }
52
53 return false;
54}
\No newline at end of file