如何组织框架是ES6

时间:2016-11-16 18:27:28

标签: ecmascript-6 es6-module-loader es6-modules

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

或者有没有办法声明子部分,导入可能如下所示,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';

0 个答案:

没有答案