Babel 6의 "regeneratorRuntime이 정의되지 않았습니다." 오류
Babel 6을 사용할 때 "regeneratorRuntime이 정의되지 않았습니다."가 정의된 경우가 발생할 수 있습니다. 특히 async/await 구문을 사용할 때 오류가 발생합니다. 이 오류는 Babel을 설정할 때 필수 종속성 또는 구성이 누락되었음을 나타냅니다.
이 문제를 해결하려면 babel-polyfill을 설치하고 구성해야 합니다. 라이브러리는 기본적으로 지원되는 기능을 지원하지 않는 환경에서 async/await와 같은 최신 JavaScript 기능을 지원하는 데 사용할 수 있는 폴리필 세트를 제공합니다.
종속성 설치
먼저 npm을 사용하여 babel-polyfill 및 기타 필수 Babel 종속성을 설치합니다.
npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader
package.json 업데이트
package.json 업데이트 파일에서 devDependency에 babel-polyfill을 추가합니다.
"devDependencies": { "babel-core": "^6.0.20", "babel-polyfill": "^6.0.16", "babel-preset-es2015": "^6.0.15", "babel-preset-stage-0": "^6.0.15" }
Update .babelrc
.babelrc 파일을 변경할 필요가 없습니다. 다음과 같아야 합니다.
{ "presets": [ "es2015", "stage-0" ] }
JavaScript 파일 업데이트
async/await 구문을 사용하고 있는지 확인하세요. 예:
"use strict"; export default async function foo() { var s = await bar(); console.log(s); } function bar() { return "bar"; }
시작 파일에서
시작 파일에서 Babel 및 babel-polyfill을 등록했는지 확인하세요.
require("babel-core/register"); require("babel-polyfill");
webpack을 사용하는 사용자는 @Cemen의 제안에 따라 babel-polyfill을 추가하세요. webpack 구성 파일에서 항목 배열의 첫 번째 값으로 설정하십시오.
module.exports = { entry: ['babel-polyfill', './test.js'], output: { filename: 'bundle.js' }, module: { loaders: [ { test: /\.jsx?$/, loader: 'babel', } ] } };
Mocha 테스트의 경우 다음을 사용하십시오.
mocha --compilers js:babel-core/register --require babel-polyfill
다음 단계에 따라 " regeneratorRuntime이 정의되지 않았습니다." 오류가 발생하고 async/await 구문을 사용합니다.
위 내용은 Babel 6에서 \'regeneratorRuntime이 정의되지 않았습니다\' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!