2

是否有“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';
4

0 回答 0