.env
ファイルからReact Nativeプロジェクトに環境変数を読み込むためにbabelプラグインを使用していますが、.env
ファイルへの変更はjavascriptファイルをインポートするまでロードされませんそれらは変化する。私は、このファイルが変更された場合に、反応ネイティブのパッケージャに再コンパイルを指示する方法が必要です。反応しないネイティブパッケージャに非javascriptファイルを見るように指示する
- 特定のファイル(
.env
)が変更されたときに、プロジェクト全体を単に再トランスポートします。 - 再transpilesは、特定の文字列を含むこれらのファイルは、
プラグイン/ミドルウェアを書き込むことによってこれを行う簡単な方法はありfoo
を言うの?反応のネイティブパッケージャがリッスンしているイベントを起動する別のバックグラウンドスクリプトですか?
[コメントへの返信でEDIT]
私の現在の.babelrc
がbabel-plugin-react-native-config
私はreact-native-config
パッケージと一緒にホットスワップ変数を行うために書いたプラグインです以下、です。
{
"presets": [
"react-native"
],
"plugins": [
["babel-plugin-espower", {
"sourceRoot": "./App"
}],
"transform-flow-strip-types"
],
"env": {
"production": {
"plugins": [
"babel-plugin-unassert",
]
},
"development": {
"plugins": [
["babel-plugin-react-native-config", { envfile: ".env" }]
]
}
}
}
問題があるのは、反応ネイティブのパッケージャがjavascriptファイルのみを監視することです。バベルは何とか反応し、ネイティブするか、警備員をいくつかのファイルが再コンパイル必要があることを知らせるために上向きに話すことができない限り、私は私がすることを決定し、[EDIT 2]
...、私のバベル構成が役立つ変更
を考えていません反応したネイティブのパッケージャーは、監視員を使用してファイルを監視します。パッケージャが実行されている間、私はこの時計を削除すると、私は(とwatchman watch-del-all
を実行した後)パッケージャを起動した後watchman watch-list
を行う、私は
{
"version": "4.6.0",
"roots": [
"/path/to/my/project"
]
}
を取得する。また、何も、その視点から(JSのISNを起こりません例えば、アップデートを受け取っていないので変更しないでください)、その後、私はこのパッケージを再起動すると、この時計を作り直してすべてを透明化します。
もっと良い方法がない限り、(1)反応パッケージャを殺す(2)私のアプリケーションディレクトリで時計を殺す(3)ノードパッケージャを再起動するための監視人のトリガを作成する必要があります。これは遅くてハッキリですが、私はそれが機能するかどうかを見たいと思います。
これは一般的な方法ではうまく動作しませんでしたが、私はさまざまなことを試しています。
あなたの現在のバベルの設定についてもっと詳しく説明できますか?ありがとうございました –
@セバスチャンはあなたの要求された詳細で更新しました。 – JeremyKun
このスレッドがあなたを助けることができるかどうか確認してください。 https://github.com/mjohnston/react-native-webpack-server/issues/63 – arunprakashpj