Не удается импортировать файл внутри встроенного Babel ReactJS unpkg

Привет, ребята, я использую React и React-DOM unpkg, чтобы добавить реакцию на мою веб-страницу. я также использую babel unpkg для включения jsx. но у меня проблема при импорте другого файла. вот код файла

class Trial extends React.Component {
  render() {
    return (
      <div>
        <h1>Hello World</h1>
      </div>
    );
  }
}

module.exports = Trial;

затем я импортирую его в свой html с этим кодом

<script crossorigin src = "https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src = "https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script src = "https://unpkg.com/[email protected]/babel.min.js"></script>

<div id = "root"></div>

<script type = "text/babel">

const Trial = require('./App')

class App extends React.Component {
    render() {
        return (
            <div className = "navbar">
                <Trial />

                ......

            </div>
        )
    }
}

ReactDOM.render(
    <App />,
    document.getElementById('root')
);
</script>

но он продолжает выдавать ошибку...

Uncaught ReferenceError: require is not defined
at <anonymous>:38:14
at n (babel.min.js:12)
at r (babel.min.js:12)
at o (babel.min.js:12)
at u (babel.min.js:12)
at E (babel.min.js:1)

кто-нибудь знает, что происходит?

Babel транспилирует JSX, но require() не работает в браузере. Можно ли вместо этого использовать создать-реагировать-приложение? Это был бы мой предпочтительный маршрут

kingdaro 06.02.2019 04:14

@kingdaro CRA было бы здорово, но мне нужно объединить приложение с приложением Laravel. Страница, над которой я работаю, используется только для функции поиска, остальное использует Laravel. поэтому я использую unpkg. любой обходной путь, который вы можете предоставить?

muhsalaa 06.02.2019 04:17

Вы по-прежнему можете использовать CRA, и ваше приложение Laravel будет ссылаться на файлы, созданные CRA, в папке build. Если вам нужна большая гибкость, вы можете создать свою собственную сборку веб-пакета и сделать так, чтобы ваше приложение ссылалось на выходной JS-файл. Или используйте простой инструмент, такой как посылка. На самом деле любой вид процесса связывания модулей. Альтернативой является помещение всего в глобальную область видимости, но это было бы кошмаром для ремонтопригодности.

kingdaro 06.02.2019 04:21

@kingdaro спасибо, попробую твоё предложение

muhsalaa 06.02.2019 04:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
569
1

Ответы 1

Если вы действительно хотите использовать import / require во время выполнения, либо используйте оператор import, который в настоящее время широко поддерживается в вечнозеленых браузерах, либо используйте библиотеку динамического загрузчика модулей, такую ​​как SystemJS или ТребоватьJS (последняя, ​​правда, древняя).


Кроме того, в рабочей среде рекомендуется выполнять Преобразование JSX во время выполнения нет.

Ошибка не может быть такой же (require is not defined), если вы используете инструкцию import. Что именно вы пробовали?

ᅙᄉᅙ 06.02.2019 04:44

такая же ошибка дружище. я использую приложение для экспорта по умолчанию в App.js и использую приложение для импорта из './App' в index.html

muhsalaa 06.02.2019 04:53

Правильный синтаксис — import App from './App.js', но он должен быть в элементе <script type='module'>, что невозможно в вашем случае, потому что вы должны использовать тип text/babel.

ᅙᄉᅙ 06.02.2019 04:56

да, я пытаюсь импортировать его по типу скрипта/babel и получаю ошибку

muhsalaa 06.02.2019 04:56

Решение состоит в том, чтобы либо а) не использовать JSX, либо б) использовать SystemJS, либо в) просто использовать сборщик модулей, такой как webpack (то, что использует приложение create-реагировать) или rollup.

ᅙᄉᅙ 06.02.2019 04:57

Другие вопросы по теме