전에, babel은 줄을 추가 할 것 module.exports = exports["default"]
입니다. 더 이상이 작업을 수행하지 않습니다. 이것이 의미하는 것은 내가 할 수 있기 전에입니다.
var foo = require('./foo');
// use foo
이제이 작업을 수행해야합니다.
var foo = require('./foo').default;
// use foo
큰 문제는 아닙니다. 문제는 작동하는 방식에 따라 많은 코드가 있다는 것입니다 (대부분의 코드를 ES6 가져 오기로 변환 할 수는 있지만 전부는 아닙니다). 누구나 내 프로젝트를 거치지 않고 이전 방식으로 작업하는 방법에 대한 팁을 줄 수 있습니까 (또는 코드 모드를 작성하는 방법에 대한 지침조차도 매우 매끄 럽습니다).
감사!
예:
입력:
const foo = {}
export default foo
Babel 5를 사용한 출력
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
module.exports = exports["default"];
Babel 6 및 es2015 플러그인을 사용한 출력 :
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
출력의 유일한 차이점은 module.exports = exports["default"]
입니다.
편집하다
: 당신은 내 특정 문제를 해결 한 후 쓴이 블로그 게시물에 관심이있을 수 있는 솔루션 바벨, 눈물을 업그레이드 오해 ES6 모듈, 및
if (false) { require('./foo') }
.webpack foo.js
을 사용하면 결과 번들에 실제로 포함 되지 않습니다 .
false
이 토글? 웹팩 구성에서 사용 가능한 조건 인 경우 다른 옵션이있을 수 있습니다.
export default {foo, bar}
했습니다 module.exports = {foo, bar}
. 나는 현재 지원되지 않는 잘못된 방법을 좋아했습니다 .
require
합니다 .Babel을 사용하는 코드베이스에서 작업 하는 경우 필요한 경우는 무엇입니까? 어쨌든 피할 수있는 다른 접근법이있을 수 있습니다.