Я пытаюсь объединить приложение React в проект Laravel, разместив свой код React здесь: MyLaravelProject/resources/assets/js
.Я хотел бы использовать Laravel Mix для генерации сборки разработки React с использованием npm run dev
.
Мой webpack.mix.js
файл:
let mix = require('laravel-mix');
mix.react('resources/assets/js/index.js', 'public/js');
Мой index.js
файл:
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route } from 'react-router-dom';
import Root from 'Root';
import App from 'components/App';
ReactDOM.render(
<Root>
<BrowserRouter>
<Route path='/' component={App} />
</BrowserRouter>
</Root>,
document.querySelector('#root')
);
Моя проблема заключается в том, что все мои файлы приложения React зависят от.env
файл, содержащий NODE_PATH=js/
для включения абсолютного импорта .Я получаю эту ошибку при запуске npm run dev
:
ERROR in ./resources/assets/js/index.js
Module not found: Error: Can't resolve 'Root' in '/Users/MyUser/MyLaravelProject/resources/assets/js'
@ ./resources/assets/js/index.js 4:0-24
@ multi ./resources/assets/js/index.js
ERROR in ./resources/assets/js/index.js
Module not found: Error: Can't resolve 'components/App' in '/Users/MyUser/MyLaravelProject/resources/assets/js'
@ ./resources/assets/js/index.js 5:0-33
@ multi ./resources/assets/js/index.js
Я могу исправить эту ошибку, если я изменю свои операторы импорта на относительные пути, но это будет головной болью, чтобы сделать это со всеми моими Reactфайлы.
import Root from './Root;
import App from './components/App;
Я пробовал следующие изменения в .env
безрезультатно:
1) NODE_PATH=resources/assets/js/
2) NODE_PATH=./
3) MIX_NODE_PATH=resources/assets/js/
4) MIX_NODE_PATH=./
Я также попытался изменить сценарий package.json
dev, добавив NODE_PATH=./
.
Ни одно из этих сообщений об ошибке не изменилось, поэтому моя проблема заключается вБыть может, путь, который я определяю в webpack.mix.js
, является одновременно и исходным файлом приложения React, и абсолютным путем.
Нужно ли мне менять все пути в файлах приложения React на относительные или есть более простой способ?