From my understanding, I can use ES6 imports with Node 12 if I have the line "type": "module" in my package.json file. I'm trying to test this, but I can't get it to work. Anybody know what I'm doing wrong?
My package.json:
{
"scripts": {
"run": "clear;clear; node package/index.js",
},
"type": "module"
}
and my package/index.js file:
import * as fs from 'fs'
running npm run-script run outputs
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
Per the documentation and this announcement blog article, for "type": "module" to work you also need to set the --experimental-modules flag when running Node. So in your case the package file script would be:
"run": "clear; clear; node --experimental-modules package/index.js",
Note that this will also enable a warning at startup:
ExperimentalWarning: The ESM module loader is experimental.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With