Указание модулей ES6 в узле 12 - PullRequest
2 голосов
/ 25 июня 2019

Насколько я понимаю, я могу использовать импорт ES6 с Node 12, если в моем файле package.json есть строка "type": "module".Я пытаюсь проверить это, но я не могу заставить его работать.Кто-нибудь знает, что я делаю не так?

Мой package.json:

{
  "scripts": {
    "run": "clear;clear; node package/index.js",
  },
  "type": "module"
}

и мой package/index.js файл:

import * as fs from 'fs'

работает npm run-script run выходы

import * as fs from 'fs'
       ^

SyntaxError: Unexpected token *
    at Module._compile (internal/modules/cjs/loader.js:718:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)
    at internal/main/run_main_module.js:17:11

1 Ответ

3 голосов
/ 25 июня 2019

Per документация и эта статья блога анонса, чтобы "type": "module" работал, вы также должны установить флаг --experimental-modules при запуске Node. Так что в вашем случае скрипт файла пакета будет:

"run": "clear; clear; node --experimental-modules package/index.js",

Обратите внимание, что это также активирует предупреждение при запуске:

ExperimentalWarning: The ESM module loader is experimental.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...