Ответ 1
Create-React-App
- очень интересная настройка.
Я начал выкапывать из package.json
НПМ сценария start
"start": "start-scripts start"
Это приводит меня к их двоичным react-scripts
в node_modules/.bin
Я разместил здесь соответствующий материал.
switch (script) {
case 'build':
case 'eject':
case 'start':
case 'test': {
const result = spawn.sync(
'node',
[require.resolve('../scripts/' + script)].concat(args),
{ stdio: 'inherit' }
);
Таким образом, это говорит мне, что они ищут скрипт внутри папки ../scripts/
.
Поэтому я node_modules/react-scripts
модулю npm для сценариев реакции (node_modules/react-scripts
) и открываю node_modules/react-scripts/scripts/start.js
так как я делал npm start
.
Теперь я нашел конфигурацию webpack, которую я искал.
Они специально ссылались на node_modules/react-scripts/config/webpack.config.dev.js
. Я разместил здесь соответствующий материал.
entry: [
// Finally, this is your app code:
paths.appIndexJs,
],
plugins: [
// Generates an 'index.html' file with the <script> injected.
new HtmlWebpackPlugin({
inject: true,
template: paths.appHtml,
}),
Таким образом, файл, передаваемый paths.appIndexJs
является файлом входа в конфигурацию webpack.
И они используют HtmlWebpackPlugin для загрузки html по пути paths.appHtml
.
Заключительная часть головоломки связывает это с файлами, которые вы опубликовали. Проводка соответствующего материала из paths.js
const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
module.exports = {
...
appHtml: resolveApp('public/index.html'),
appIndexJs: resolveApp('src/index.js'),
...
}
Поэтому внутри вашего каталога приложений,
appHtml является файлом public/index.html
appIndexJs - файл src/index.js
Ваши два файла.
Вау! Это было довольно путешествие..: P