Пожалуйста, проверьте вашу версию node.js. Синтаксис import
поддерживается (как экспериментальная функция ) в файле node.js 8.5.0+. Чтобы использовать эту функцию, вам необходимо:
Если вы используете старую версию Node.js, вам необходимо обновить ее.
Ваш интерпретатор node.js, используемый WebStorm, можно найти в Setting
-> Language & Frameworks
-> Node.js and NPM
, вы можете найти версию на основе пути к каталогу (например, в моем случае это 8.12.0) или по команде, аналогичной node -v
![enter image description here](https://i.stack.imgur.com/juG4A.png)
Переименуйте все ваши *.js
файлы в *.mjs
. например Переименуйте stack.js
в stack.mjs
Запустите файл mjs
с параметром командной строки --experimental-modules
. Если вы используете командную строку, вы должны использовать что-то похожее на node --experimental-modules main.mjs
. Если вы используете webstorm, вы можете настроить его через параметр командной строки webstorm (как показано на скриншоте)
![enter image description here](https://i.stack.imgur.com/k7jfw.png)
Однако операторы import
/ export
- не лучший способ для модульной разработки в node.js. Он в основном используется в интерфейсной веб-разработке с веб-пакетом. Обычно в node.js мы используем require
и module.export
, это должно быть что-то похожее на
// In stack.js
class Stack {
}
module.export = {Stack}
// In main.js
const {Stack} = require('./stack.js')
Кроме того, вам может потребоваться включить синтаксис ES6 в Webstorm, если он показывает предупреждение в редакторе.
Setting
-> Language & Frameworks
-> JavaScript
, в раскрывающемся списке JavaScript Language Version
выберите ECMAScript 6
.
![enter image description here](https://i.stack.imgur.com/kmLoC.png)