Используя узел, как мне импортировать мой модуль ES6-export-default в мою программу javascript командной строки? - PullRequest
0 голосов
/ 04 мая 2019

У меня есть модуль ES6 в mymodule.js

export default function () {

  console.log('hello world');

}

Внутри app.js я импортирую модуль

import mymodule from 'mymodule'; //also tried './mymodule' and './mymodule.js'

mymodule();

Выполнить из командной строки

node app.js

Или

node --experimental-modules app.js

Сообщение об ошибке

import mymodule from 'mymodule';
   ^^^^^^^^

SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:703:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
at internal/modules/esm/translators.js:84:15
at Object.meta.done (internal/modules/esm/create_dynamic_module.js:40:9)
at file:///home/a/code/marionette/test_area/app.js:9:13
at ModuleJob.run (internal/modules/esm/module_job.js:111:37)
at processTicksAndRejections (internal/process/task_queues.js:88:5)
at process.runNextTicks [as _tickCallback] (internal/process/task_queues.js:58:3)

Версия

node --version                                                                                                                                  
v12.0.0

npm --version
6.9.0

Другое

  • Linux
  • с использованием nvm
  • Хотя я использую npm и у меня есть файл package.json, я не хочу использовать babel, webpack или какую-либо другую зависимость dev, чтобы заставить это работать.
  • Я счастлив использовать экспериментальные функции.

Вопрос

Как использовать узел и ES6, как импортировать модуль ES6 в программу javascript командной строки?

1 Ответ

0 голосов
/ 04 мая 2019

После комментария Pointy я внес эти изменения

  1. переименовал mymodule.js в mymodule.mjs
  2. изменен для импорта в

    import mymodule from './mymodule.mjs'

  3. в package.json добавлено поле верхнего уровня

    "type": "module",

...