[英]Import '.json' extension in ES6 Node.js throws an error
我們正在嘗試使用 Node.js 為 ES6 導出和導入模塊的新方法。 從package.json
文件中獲取版本號對我們來說很重要。 下面的代碼應該做到這一點:
import {name, version} from '../../package.json'
但是,在執行時會引發以下錯誤:
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for T:\ICP\package.json imported from T:\ICP\src\controllers\about.js
我們缺少什么嗎?
不支持擴展名.json
嗎?
是否有另一種方法可以使用 Node.js 13+ 檢索此信息?
根據Node.js ES 模塊文檔--experimental-json-modules 。 是導入 JSON 文件所必需的。
包括--experimental-json-modules標志以使模塊工作。
node --experimental-json-modules about.js
您可以在 Node.js 的 ES6 模塊中導入require
:
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
您可以在 docs node-js中使用它,如下所示:
import { readFile } from 'fs/promises';
const json = JSON.parse(await readFile(new URL('../../package.json', import.meta.url)));
是的,還有另一種獲取版本的方法,但它沒有ES6
模塊系統。 這是一個工作示例: https : //codesandbox.io/s/funny-banzai-2xgvf 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.