babelでトランスパイルしたときに、this を void 0 に変えてしまう設定を無効化したメモ
5623 ワード
現象
- elmの吐き出したjsをbabelにかけたら動作しなくなった
-
(this)
がvoid 0
に変更されていたのが原因。
対応
babel.config.jsにoverridesオプションをつけて対応
babel.config.js-before
const presets = [
[
"@babel/env",
{
targets: {
chrome: "70"
},
useBuiltIns: "entry"
},
],
];
module.exports = { presets };
babel.config.js-after
const presets = [
[
"@babel/env",
{
targets: {
chrome: "70"
},
useBuiltIns: "entry"
},
],
];
const overrides = [{
test: "./src/assets/elm/ElmTest.js",
sourceType: "script",
}];
module.exports = { presets, overrides };
結果
src/assets/elm/ElmTest.js-before
// 省略
_Platform_export({
'Main': {
'init': author$project$Main$main(elm$json$Json$Decode$succeed(0))(0)
}
});
})(void 0);
src/assets/elm/ElmTest.js-after
// 省略
_Platform_export({
'Main': {
'init': author$project$Main$main(elm$json$Json$Decode$succeed(0))(0)
}
});
})(this);
参考
stack over flow: how to stop babel from transpiling this to undefined
stack over flow: how to properly overrides
babel overrides
Author And Source
この問題について(babelでトランスパイルしたときに、this を void 0 に変えてしまう設定を無効化したメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/hibohiboo/items/60b896879be6429ca107著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .