ES6导入内部导出默认

我正在将NodeJS应用程序的整个代码从ES5迁移到ES6 / 7。

谈到import时我遇到了麻烦:

首先,我明白,导入直接调用文件。 例如 :

import moduleTest from './moduleTest'; 

这段代码将进入moduleTest.js并执行它。

所以,真正的问题是关于这个代码:

 import mongoose from 'mongoose'; import autopopulate from 'mongoose-autopopulate'; import dp from 'mongoose-deep-populate'; import { someUtils } from '../utils'; const types = mongoose.Schema.Types; const deepPopulate = dp(mongoose); export default () => { // DOES SOMETHING USING types AND deepPopulate return someThing; }; export const anotherModule = () => { // ALSO USE types and deepPopulate }; 

这是一个很好的做法,有两种出口以外的typesdeepPopulate声明? 或者我应该在每个出口申报?

这个问题的原因是我由于这种做法而产生冲突(为了简化,假设dp(mongoose)会调用一些尚未声明的东西)

您只能将一个“默认”输出到模块,或者您可以为每个模块input多个“已命名”输出。 请看下面的内容,以获得在ES6中处理导出的很好的描述: ECMAScript 6 Modules:The Final Syntax