We're trying to use the new ways of exporting and importing modules for ES6 with Node.js. It's important for us to get the version number from the package.json
file. The following code should do that:
import {name, version} from '../../package.json'
However, on execution the following error is thrown:
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for T:\ICP\package.json imported from T:\ICP\src\controllers\about.js
Is there something we're missing?
Is the extension .json
not supported?
Is there another way to retrieve this information using Node.js 13+?
It's finally happened: nearly 4 years after the import keyword was introduced in ES6, Node. js introduced experimental support for ES6 imports and exports. In Node. js 12, you can use import and export in your project if you do both of the below items.
According to the Node.js ES Modules docs --experimental-json-modules. is required for importing JSON files.
Include the --experimental-json-modules flag for the module to work.
node --experimental-json-modules about.js
You can sill import require
in an ES6 module for Node.js:
import { createRequire } from "module"; // Bring in the ability to create the 'require' method const require = createRequire(import.meta.url); // construct the require method const my_json_file = require("path/to/json/your-json-file.json") // use the require method
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