Импорт javascript верхнего уровня - Redux

Я пытаюсь изучить redux, и я столкнулся с ошибкой. У меня есть только два файла: файл index.html и файл main.js. В html файле есть ссылки на jquery и redux cdns. Я только получил 2.3 в учебнике redux (http://redux.js.org/docs/basics/Store.html) и застрял. У меня

import {createStore} from 'redux';

в верхней части моего файла main.js, но когда я загружаю приложение, я получаю сообщение об ошибке, указывающее на строку выше, говоря

SyntaxError: import declarations may only appear at top level

Что такое "декларация импорта верхнего уровня"?

Вот суть моего кода, если это помогает. https://gist.github.com/austincarvey/6e6c8fdc2640b0f9bbfb

Ответ 1

Директива import не распознается веб-браузерами. Он использовался на этапе компиляции, чтобы связать разные исходные файлы и сторонние модули в один веб-узел. Если это не имеет смысла, я настоятельно рекомендую изучить Babel и Webpack или Browserify. Babel транслирует синтаксис ES6 и React в дружественный браузер код ES5, в то время как Webpack/Browserify связывает ваши модули.

Пока же, если вы просто хотите продолжить изучение Redux, вы можете просто удалить оператор импорта и вместо этого использовать глобальную переменную Redux, которую вы можете открыть с помощью CD-диска redux CD3 script. то есть.

var store = Redux.createStore(counterReducer);

Ответ 2

import используется, когда вы включаете файл через модули es6 в контексте, который их поддерживает (Browserify/Webpack/etc, будущие версии браузеров).

Поскольку вы включаете тег Redux через тег <script>, который заботится о включении Redux в глобальную область.

В случае вашей сущности, если вы удалите строку 1 и измените вызов createStore на Redux.createStore на 29, все должно работать.