如何使用ECMA模块在nodejs中导入.json文件?

时间:2020-07-23 02:35:07

标签: javascript node.js import module require

我正在使用nodejs 14.6.0。在我的package.json文件中,我将类型设置为module。

type: module

尝试执行以下操作:

import serviceAccount from 'serviceAccount.json'

我收到以下错误:TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for C:\Users\Aditya\youtube-discord-bot\database\serviceAccount.json

现在,在网上它说我必须像下面这样更改我的启动脚本:node --experimental-json-modules index.js。但是,即使发生此情况,也会发生相同的错误。

是否有解决方法?我想要使​​用此功能的serviceAccountKey,因为尝试导出它(作为.js文件)时,Firebase给了我一个错误。

过去,在执行此操作之前,我只是使用require('./serviceAccount.json'),而且效果很好。但是,我想切换为使用这些新的ECMA模块。

2 个答案:

答案 0 :(得分:1)

  1. 使用webpack:https://webpack.js.org/loaders/#json
  2. 将json文件传输到js对象:
    config.js
    export default
    {
      // my json here...
    }

然后...

    import config from '../config.js'

答案 1 :(得分:1)

如果您需要使用无法更改并转换为导出的 .json 文件,您仍然可以按如下方式使用 require:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const serviceAccount = require('./serviceAccount.json');