簡體   English   中英

在React App中運行npm測試時出現BABEL_ENV問題

[英]BABEL_ENV issue when running npm test in React App

我的package.json腳本塊中有以下腳本,這需要通過babel-register-進行babel,並將NODE_ENV設置為development才能執行此操作。

"test": "set NODE_ENV=development&&mocha --watch --require babel-register --require jsdom-global/register --require ignore-styles --require src/tests/helpers.js src/tests/**/*.js"

但是,我收到此錯誤:

Error: Using `babel-preset-react-app` requires that you specify `NODE_ENV` or `BABEL_ENV` environment variables. Valid values are "development", "test", and "production". Instead, received:undefined.

我嘗試了許多組合的卸載,重新安裝,更改腳本中要求的順序以及此錯誤的主要git問題中提到的其他幾個步驟。

誰能在這里看到我的方法中任何明顯的錯誤? 完整包裝如下:

"dependencies": {
  "prop-types": "^15.6.2",
  "react": "^16.4.1",
  "react-dom": "^16.4.1",
  "react-scripts": "1.1.4",
  "tslib": "^1.9.3",
  "typescript": "^3.0.1"
},
"scripts": {
  "build-css": "node-sass-chokidar src/ -o src/",
  "watch-css": "node-sass-chokidar src/ -o src/ --watch --recursive",
  "start-js": "react-scripts start",
  "build-ts": "set NODE_ENV=development tsc || exit 0",
  "watch-ts": "tsc --watch",
  "build": "react-scripts build",
  "start": "npm-run-all -p build-* watch-* start-js",
  "test": "set NODE_ENV=development&&mocha --watch --require babel-register --require jsdom-global/register --require ignore-styles --require src/tests/helpers.js src/tests/**/*.js",
  "eject": "react-scripts eject"
},
"babel": {
  "presets": [
    "es2015",
    "react",
    "react-app"
  ],
  "plugins": [
    "transform-object-rest-spread"
  ]
},
"devDependencies": {
  "babel-cli": "^6.26.0",
  "babel-plugin-transform-object-rest-spread": "^6.26.0",
  "babel-preset-es2015": "^6.24.1",
  "babel-preset-stage-2": "^6.24.1",
  "chai": "^4.1.2",
  "enzyme": "^3.4.1",
  "enzyme-adapter-react-16": "^1.2.0",
  "ignore-styles": "^5.0.1",
  "jsdom": "^11.12.0",
  "jsdom-global": "^3.0.2",
  "mocha": "^5.2.0",
  "node-sass-chokidar": "^1.3.3",
  "npm-run-all": "^4.1.3",
  "sinon": "^6.1.5"
}

當前,您使用set來指定NODE_ENV變量,這將導致該變量不可用於子進程,即,在&&運算符之后鏈接的下一個命令,即mocha

如果改用export ,則將確保它對子進程可用。

test腳本的開頭更改為以下內容:

"test": "export NODE_ENV=development && mocha --watch ..."

跨平台:

export僅在Bash環境中有效。 對於跨平台解決方案,請考慮利用cross-env設置環境變量。 例:

"test": "cross-env NODE_ENV=development mocha --watch ..."

注意: export已由cross-env替換,並且&&運算符不是必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM