如何按照ES6标准而非CommonJS规范导入config模块
可以实现,改法非常简单。
你只需要把原来的const config = require('config');替换为ES6默认导入语法即可,config包本身已经兼容ES模块规范,替换后你常用的config.get('item')方法可以完全正常使用,不需要修改任何调用逻辑。
如果替换后运行出现模块导入报错,需要先确认项目已经开启了ES模块支持:
- Node.js原生环境需要在package.json中添加
"type": "module"配置,否则Node默认会按CommonJS规则解析文件,识别不了import语法 - 如果使用TypeScript,需要确认tsconfig.json中
module配置项设置为ES6/ESNext,moduleResolution配置项设置为NodeNext/Bundler,避免模块解析失败
如果遇到default导出不存在的罕见报错,也可以改用命名空间导入写法:import * as config from 'config',调用逻辑依然不用改动。
改完后的完整导入代码如下:
import express from 'express'; import dotenv from 'dotenv'; import { PasswordItemDTO } from './api/clients/PasswordCheck/model/passwordItemDTO'; import { PasswordErrorsDTO } from './api/clients/PasswordCheck/model/passwordErrorsDTO'; import config from 'config';
内容的提问来源于stack exchange,提问作者Alberto Sánchez
相关产品推荐
相关产品推荐

