javascript - 将 module.exports 重写为导出默认值,但保留导入单个实体的可能性
问题描述
是否可以实现与以下相同的功能:
module.exports = {
a: 1,
b: 2
}
...后来允许:
import { a } from 'path/to/module'
通过使用 ES6 模块(或导出默认值):
export const moduleName = {
a: 1,
b: 2
}
这样以后就不会将整个模块导入另一个模块,而只会导入其中的一部分
解决方案
改用命名导出:
export const a = 1;
export const b = 2;
请注意,尽管这允许使用者执行类似 的操作import { a } from ...
,但您现在实际上并没有解构具有a
属性的对象,就像您最初使用module.exports
语法所做的那样,您只是提取命名的导出。
如果需要,除了使用命名导出之外,您仍然可以导出默认对象:
export default { c: 'c', d: 'd' }
然后你可以导入
import obj from '...';
const { c } = obj;
推荐阅读
- php - 如何从 Laravel 5.5 中的 DB Json 值比较和获取数据
- javascript - 将图像上传到firebase没有错误,但图像没有出现在存储中
- c++ - 移动后是否需要重置 std::list ?
- vba - 无法处理不同工作表上的命令
- amazon-web-services - 使用自动缩放为 AWS Elasticbeanstalk 上的 Google Places API 密钥限制创建静态 IP
- python - Why is aiohttp horribly slower than gevent?
- android - 我们可以停止 evrencoskun TableView 在 android 中的垂直滚动吗?
- minizinc - minizinc修复功能有什么用?
- node.js - 如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?
- outlook - 适用于 Android 的 Outlook 加载项:尝试访问 userProfile 时出现异常。访问受保护的 Javascript API-Office 成员需要提升权限