babel-preset-react-app没有拾取环境变量

时间:2017-05-26 09:27:56

标签: node.js reactjs babel create-react-app

  

编译失败./src/index.js模块构建失败:错误:正在使用   babel-preset-react-app要求您指定NODE_ENV或   BABEL_ENV个环境变量。有效值为" development",   "测试"和"生产"。相反,收到:" undefined"。 (而   处理   预设:" C:\用户\米奇\ OneDrive \发展\ GIT中\反应种子\ node_modules \巴别预置反应的应用内\ index.js&#34)   在Array.map(native)

我不断得到上述错误,无论我尝试设置环境变量或环境变量有多少奇怪而美妙的方法,因为我更新了我的react-app,我甚至可以通过'创建反应的应用程式'脚本 - 我明显做错了什么?

4 个答案:

答案 0 :(得分:8)

我在package.json中执行此操作:

{
  "scripts": {
    "build": "NODE_ENV=development babel src -d lib",
    "build-prod": "NODE_ENV=production babel src -d lib"
  }
}

答案 1 :(得分:2)

使用set(my_includes ...) add_library(foo ...) target_include_directories(foo PUBLIC ${my_includes}) add_library(bar ...) target_include_directories(bar PUBLIC ${my_includes}) 要求您指定babel-preset-react-appNODE_ENV环境变量。有效值为“开发”,“测试”和“生产”。而是收到:“开发”

遇到类似的问题,并注意到空格字符使这种配置弄乱了:

BABEL_ENV

答案 2 :(得分:0)

{
  "scripts": {
    "build": "export NODE_ENV=development && babel src -d lib",
    "build-prod": "export NODE_ENV=production && babel src -d lib"
  }
}

答案 3 :(得分:0)

跨平台兼容性

如果您的目标是跨平台兼容性,则应使用 cross-env

{
  "scripts": {
    "build:dev": "npx cross-env NODE_ENV=development babel src -d lib",
    "build:prod": "npx cross-env NODE_ENV=production babel src -d lib"
  }
}

目前的答案仅适用于 windows 或 mac,并且 package.json 应该可以跨多个客户端传送,而不必为每个操作系统定制太多

另请参阅 Making NPM scripts work cross platform

的此演练(我的)