是否有“es6 方式”将功能集合打包到框架中?以下哪种方法(或者如果我遗漏了某些方法,可以使用其他方法)会起作用?我正在使用 Babel 转译代码,并希望确保我选择的路线尽可能面向未来。
的背景:
我开始了一个项目,并希望将很多功能提取到它自己的框架中。实用功能的数量已经足够大,以至于它们应该与使用它们的应用程序的其余部分分开。类和函数按文件夹组织,每个都在它自己的文件中,如下所示:
app
├─ array
│ ├─ ...
│ ├─ shuffle.js
│ ├─ ...
├─ math
│ ├─ ...
│ ├─ random.js
│ ├─ ...
├─ models
│ ├─ ...
│ ├─ answers.js
│ ├─ model.js
│ ├─ ...
所以目前在answers.js
我有包括:
import { shuffle } from './array/shuffle';
import { Random } from './math/random';
import { Model } from './models/model';
class Answers extends Model {
...
}
接下来我想组织和打包一个myframework
我可以从中导入的新项目?
myframework
├─ model.js
├─ array
│ ├─ ...
│ ├─ shuffle.js
│ ├─ ...
└─ math
├─ ...
└─ random.js
选项1:
构建一个myframework.js
文件,什么?,命名子部分?然后answers
看起来像:
import { array.shuffle as shuffle } from 'myframework';
import { math.Random as Random } from 'myframework';
import { Model } from 'myframwork';
或者有没有一种方法来声明子部分,这样 import 可能如下所示,并且myframework.js
仍然是一个文件:
import { shuffle } from 'myframework/array';
import { Random } from 'myframework/random';
import { Model } from 'myframwork';
选项 2:
为每个部分构建一个文件。我想调用基本级别core
或其他东西:
myframework
├─ core.js
├─ array.js
└─ math.js
和:
import { shuffle } from 'myframework/array';
import { Random } from 'myframework/random';
import { Model } from 'myframwork/core';