@Zhyki
Ничерта не понимаю

Import в nodejs 10.11.0 — как заставить работать?

import app from 'electron';
import BrowserWindow from 'electron';

app.on('ready', () => {

   createWindow();

});

app.on('window-all-closed', function() {
    app.quit();
});


function createWindow() {
    let appWindow = new BrowserWindow({
        width: 800,
        height: 600,
        devTools:true,
    });
    appWindow.loadURL(path.join(__dirname, 'App/index.html'));
    return appWindow;
};

При запуске выдает :
import app from 'electron';
^^^
SyntaxError: Unexpected identifier

Если заменить на import {app,BrowserWindow} from 'electron'; выдает:

import {app,BrowserWindow} from 'electron';
^
SyntaxError: Unexpected token {

Запускаю так:
"start": "node app.js"
с флагом --experimental-modules тоже пробовал - ничего не меняется
Есть идеи в чем проблема?
  • Вопрос задан
  • 1076 просмотров
Пригласить эксперта
Ответы на вопрос 4
toxicmt
@toxicmt
CTO at hexlet.io
Лучше всего использовать https://babeljs.io/ и не париться, что для бекенда что для фронтенда. Во-первых не придется ничего менять (типа расширения для использования mjs), с другой стороны сейчас это стандарт де-факто в js мире, в-третьих во фронте без него вообще никак.
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Комментировать
@Flying
Как указано в документации - ES6 imports работают только в файлах с расширением .mjs при включенном флаге --experimental-modules

О причинах такого поведения хорошо написано в статье от одного из разработчиков node.js
Ответ написан
Комментировать
@Abcdefgk
А если такой неожиданный вариант.
Написать, например, так
var { app, BrowserWindow } = require('electron');
Может сработать (но это не точно).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы