在typescript jest上下文中,node-config配置是`undefined`?

uajslkp6  于 6个月前  发布在  Jest
关注(0)|答案(2)|浏览(96)

我有一个在开发和生产中工作的typescript模块。它使用https://github.com/lorenwest/node-config,我试图将其导入jest以编写测试,它抛出一个错误,表明配置对象未定义

TypeError: Cannot read property 'get' of undefined
at Object.<anonymous> (src/email/email.service.ts:1877:43)

字符串

import config from 'config'
console.log('**********CONFIG GET*********', config); // undefined
const sendgridToken: string = config.get('socialApi.value') // throws error


我希望config被定义为config模块的默认导出
工作环境:

node-config version: [email protected]
node-version: 12.13.1
tsc -v
Version 3.7.4
[email protected]

mpgws1up

mpgws1up1#

而不是

import config from 'config'

字符串
写这

import * as config from 'config'

ki0zmccv

ki0zmccv2#

您还可以在tsconfig中启用esModuleInterop

"compilerOptions": {
    "esModuleInterop": true,
   }

字符串
默认情况下,import config from "config"的行为与const config = require("config").default相同,config具有module.exports = ...(即没有默认导出)。
esModuleInterop使用default Package 模块.exports。

module.exports = ...
module.exports = { default: module.exports }
// it is pseudo-code


查看更多

相关问题