Добавление html и js-кода в папку React src

#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. Я добавил больше информации к ответу и о том, как вы, возможно, можете сделать это иначе.