Невозможно импортировать модуль в узел - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь импортировать регистратор. js в приложение. js, но снова и снова сталкиваюсь с ошибкой. Синтаксическая ошибка: невозможно использовать оператор импорта вне модуля.

регистратор. js

    var url='http://mylogger.io/log';
function log(message){

    //send an http request;
    console.log(message);
}
module.export.log=log;

приложение. js

import logger from './logger';

Я использую узел 12.0 .

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

Если вы используете синтаксис ESM (модуль ECMAScript), например import logger from './logger';, вы должны указать экспорт ESM.

ПРИМЕЧАНИЕ : если вы используете v12, вы должны использовать Node.js v12.17.0 или выше ( ссылка на журнал изменений ) или с использованием флага --experimental-modules.

Кроме того, вы должны указать "type": "module" в package.json как @ Evert упомянуто

Итак:

регистратор. js

var url='http://mylogger.io/log';

// or export function log(message) {
function log(message){

    //send an http request;
    console.log(message);
}

export default log;

приложение. js

import logger from './logger';

пакет. json

Укажите "type": "module" в package.json

{
  "name": "<project>",
  "version": "<version>",
  "description": "<description>",
  "type": "module",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  ......
}

Ссылка Node.js Модули ECMAScript

0 голосов
/ 11 июля 2020

, если вы хотите импортировать из регистратора. js изменить: приложение. js

var newlog = require('./logger.js');

Для более подробного разъяснения вы можете проверить это

...