関数のコレクションをフレームワークにパッケージ化する「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:
1 つのmyframework.js
ファイルを作成し、サブセクションの名前空間を作成します。次にanswers
、次のようになります。
import { array.shuffle as shuffle } from 'myframework';
import { math.Random as Random } from 'myframework';
import { Model } from 'myframwork';
または、インポートが次のようになり、myframework.js
まだ1つのファイルになるようにサブセクションを宣言する方法はありますか:
import { shuffle } from 'myframework/array';
import { Random } from 'myframework/random';
import { Model } from 'myframwork';
オプション 2:
セクションごとに 1 つのファイルを作成します。core
ベースレベルか何かを呼び出すと思います:
myframework
├─ core.js
├─ array.js
└─ math.js
と:
import { shuffle } from 'myframework/array';
import { Random } from 'myframework/random';
import { Model } from 'myframwork/core';