は、私はこれらの輸入品を持っていると言います何らかの形で反射されたファイルを参照する方法はありますか?何とかそれらを参照するためにそれらをグループ化することができないように思えるので。動的に参照する静的ESNext輸入
require()
の代わりにrequire()
を使用できますが、インポートステートメントでいくつかの動的な処理を行う方法があるかどうかは疑問です。たとえば、インポートを追加または削除すると、他のコードを変更する必要はありません。
は、私はこれらの輸入品を持っていると言います何らかの形で反射されたファイルを参照する方法はありますか?何とかそれらを参照するためにそれらをグループ化することができないように思えるので。動的に参照する静的ESNext輸入
require()
の代わりにrequire()
を使用できますが、インポートステートメントでいくつかの動的な処理を行う方法があるかどうかは疑問です。たとえば、インポートを追加または削除すると、他のコードを変更する必要はありません。
私はここで別の質問、尋ねることによって発見されたこの質問への偉大な答えがあります:
exporting imports as a namespace with TypeScript
は、ファイル名を作成する01たとえば、モジュールだけをリストし、それぞれをエクスポートする場合は、を使用します。
export {default as clearLineReporter} from '../modules/clear-line-reporter';
export {default as karmaReporter} from '../modules/karma-reporter';
export {default as metaTestReporter} from '../modules/meta-test-reporter';
...
export {default as stdReporter} from '../modules/std-reporter';
export {default as tapJSONReporter} from '../modules/tap-json-reporter';
は、その後、あなたのモジュールであなただけ行うことができます。
import * as mods from './grouped-modules'
export {mods}
それはs
と呼ばれる名前空間に型と値の両方をエクスポートします。
import {mods} from 'your-module'
const anObject: mods.clearLineReporter = ...;
これにより、モジュールを1つの変数に動的にグループ化することができます。
インポートされたファイルをリフレクションの形式で参照できる方法はありますか?
import
文がブラウザでESネイティブモジュール実装することができ、またはbabel
-edはnode.js
でステートメントを必要とする、またはwebpack
で解決バインディング-時間をコンパイルするため
回答は、questing意味するもので、環境に依存しています。
だから、いずれの場合も、何か反映するための解決策があります。 babel
-edコードimport
のnode.jsには、ちょうどrequire
ラッパーなので、そこにはどんな情報もあります。
ネイティブESモジュールを搭載したブラウザでは、すべてのリクエストはServiceWorker
経由で提供されるため、取得されたESモジュールに関する必要な情報を提供できます。また、ブラウザでESモジュールは、動的にそのようにインポートすることができます:https://matthewphillips.info/posts/loading-app-with-script-moduleほとんどの興味深い部分は、webpack
さ
:コンパイル時の解決と半反射がロードモジュールのAPIで機能的なスタイル(https://webpack.js.org/configuration/externals/#function)、およびランタイムでexternals
リゾルバによって達成することができます(https://webpack.js.org/api/module-variables/#webpack_modules-webpack-specific-)
ありがとう私は今質問に答えている –
[this](https://stackoverflow.com/a/34072770/1048572)や[that](https://stackoverflow.com/a/29722646/1048572)のような 'index.js'ファイルを作成することを検討してください。そして、 'import * as import from from .. .. 'modules';'を使ってください。 – Bergi