#reactjs
#reactjs ( реакция ) #reactjs
Вопрос:
У меня есть папка (скажем SDK
) внутри моей общей папки React, содержащая кучу файлов html и js / jQuery.
Я получаю доступ к этим файлам внутри моего кода react в виде iframe с помощью src http://example.com/SDK/homepage.html .
Как я могу переместить эту папку SDK из public / SDK в src / SDK в проекте React, а затем получить доступ homepage.html в iframe в моем коде React?
Я загрузил приложение с помощью Create React App и использую yarn build
для его создания.
Комментарии:
1. Вы пропустили весь смысл React, если собираетесь использовать jQuery и / или iframe
2. Я пытаюсь включить отдельный модуль, который был разработан независимо в iframe
Ответ №1:
Ну, официальный способ точно такой же, как вы это делаете: поместите его в общую папку (см.https://create-react-app.dev/docs/using-the-public-folder /).
Если вы по какой-либо причине все еще хотите поместить его в src
, то вам понадобится ваш инструмент сборки для копирования файлов во время сборки.
Если вы используете Webpack, вы могли бы использовать плагин копированияhttps://webpack.js.org/plugins/copy-webpack-plugin
Если вы используете create-react-app и не хотите извлекать (поэтому вы могли бы использовать решение webpack), то вы также можете написать небольшой скрипт в вашем package.yml
для копирования файлов в build
папку. Однако это не так удобно в обслуживании и не будет масштабироваться.
{
"name": "some-project",
...
"scripts": {
"start": "react-scripts start",
"build": "cp './src/SDK' './public/SDK' amp;amp; react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
...
}
Это соответствующая часть: "build": "cp './src/SDK' './public/SDK' amp;amp; react-scripts build",
Комментарии:
1. Я использую create react app, поэтому мне, возможно, придется выполнить извлечение для изменения файлов конфигурации. Позволяет ли это мне получить доступ example.com/SDK/homepage.html и у моего homepage.html внутри папки src / SDK, а не public / SDK?
2. да, вам нужно будет извлечь, если вы хотите настроить плагин копирования webpack. Я добавил больше информации к ответу и о том, как вы, возможно, можете сделать это иначе.