Почему я получаю ошибку при импорте модулей и как ее исправить?

Я хочу сделать сборку на es6 импортах, но застрял на самом первом этапе: самих импортах. Структура папок у меня такая:

> start_temlate_2022
     > gulp
          > config
            - path.js
            - ftp.js
            - plugins.js
          > tasks
             - copy.js
          > src
            > files   

path.js с путями:

import * as nodePath from "path";

const rootFolder = nodePath.basename(nodePath.resolve());
const buildFolder = rootFolder;
const srcFolder = "./src";

export const path = {
    build: {
        files: `${buildFolder}` + `/files/`,
    },
    src: {
        files: `${srcFolder}` + `/files/**/*.*`,
    },
    watch: {},

    clean: buildFolder,
    buildFolder: buildFolder,
    srcFolder: srcFolder,
    rootFolder: rootFolder,
    ftp: ``
}

Сам gulpfile:

import gulp from `gulp`;
import { path } from "./gulp/config/path";

global.app = {
    path: path,
    gulp: gulp
}

import { copy } from "./gulp/tasks/copy";

gulp.task(`default`, copy)

Ну и copy.js

export const copy = () => {
    return app.gulp.src(app.path.src.files)
    .pipe(app.gulp.dest(app.path.build.files))
}

При запуске gulp вылетает ошибка:

SyntaxError: Unexpected template string

at Loader.moduleStrategy (internal/modules/esm/translators.js:145:18)

at async link (internal/modules/esm/module_job.js:64:21)

Почему возникает эта ошибка и как ее исправить?


Ответы (1 шт):

Автор решения: Simon

У Вас ругается на template string, то есть на строковый литерал. Замените

import gulp from `gulp`;

на

import gulp from "gulp";

проблема в том, что для оператора import, требуется обычная строка.

→ Ссылка