如何将环境变量传递给babelrc?

时间:2017-05-02 10:36:59

标签: reactjs react-native babeljs

我正在使用react-web和react-native(混合应用程序)开发一个项目。我能够在网络上使用cross-env设置环境变量,但这似乎不适用于react-native。

含义

  1. npm脚本cross-env NODE_ENV=development BABEL_ENV=development_web webpack-dev-server --hot --progress --config build/webpack.config.dev.js运行正常。

  2. cross-env NODE_ENV=development BABEL_ENV=development_rn && react-native run-ios不起作用!

  3. 我为.babelrc获得了两个不同的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" }]]
        },
      }
    }
    

    我如何指定NODE_ENV / BABEL_ENV到development_rn作为反应本地人?

1 个答案:

答案 0 :(得分:1)

在这两个脚本中,您不仅仅使用case 1:替换要运行的命令(及其选项),case '0':,而是使用{{1}更改它以运行两个不同的命令}。 webpack-dev-server仅将环境变量应用于immediate命令,在您的情况下,它根本不执行任何操作,因为除了环境变量之外没有其他命令(另请参阅cross-env - Gotchas)。

react-native脚本应为:

&&