私は反応ウェブと反応ネイティブ(混合アプリ)の両方を使ってプロジェクトを進めています。ウェブ上でcross-envを使用して環境変数を設定することができましたが、これは反応ネイティブでは機能しないようです。を意味環境変数をbabelrcに渡すにはどうしたらいいですか?
:正常に動作しますcross-env NODE_ENV=development BABEL_ENV=development_web webpack-dev-server --hot --progress --config build/webpack.config.dev.js
NPMスクリプト。
cross-env NODE_ENV=development BABEL_ENV=development_rn && react-native run-ios
は機能しません。
私は.babelrc
ための2つの異なるBABEL_ENVのENVの設定を得た:
{
"env": {
"development_web": {
"presets": ["react", "es2015", "stage-0"],
"plugins": [
[
"react-transform",
{
"transforms": [
{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}, {
"transform": "react-transform-catch-errors",
"imports": ["react", "redbox-react"]
}
]
}
],
["import", { "style": "css", "libraryName": "antd-mobile" }],
["transform-decorators-legacy"]
]
},
"development_rn": {
"presets": ["react-native"],
"plugins": [["import", { "libraryName": "antd-mobile" }]]
},
}
}
ネイティブ反応のためにどのように私はdevelopment_rn
にNODE_ENV/BABEL_ENVを任命することができますか?
私は 'クロスENV NODE_ENV =開発BABEL_ENV = development_rnのNPMの実行test'を試みたが、テストスクリプトは次のとおりです。'エコーNODE_ENV = $ NODE_ENV BABEL_ENV = $ BABEL_ENV'それうまく動作し、エコー結果は正しい。しかし、私が 'native-run-ios'にテストスクリプトを変更すると、反応ネイティブアプリでは' process.env.NODE_ENV = nothing'と 'process.env.BABEL_ENV = development'を返します。その平均的な環境変数設定は、反応ネイティブでは機能していませんか? – Kim
'BABEL_ENV'には[未解決の問題#8723](https://github.com/facebook/react-native/issues/8723)があります。反応するネイティブコードで環境変数を使用する限り、[環境変数を反応ネイティブで設定する]を参照することができます(https://stackoverflow.com/questions/33117227/setting-environment-variable-in-反応ネイティブ)、なぜ彼らはデフォルト値を持っているのか説明する必要がありますが、それはバベルの問題を解決しません。 –