GitHubのリポジトリにあるソースを参考にして、
別のプロジェクトに組み込もうとかした時に、
ちょっと昔のソースだと即時関数的に↓の感じのコードになってる場合。
(function(root,factory){
//code
}(this,function(){
//code
}));
bable7以上だと、引数のthisがundefinedになって動かなくなる。
で、色々対応方法調べてみたら、下のがとりあえずの回避方法。
.babelrcの中に下の感じで対象のjsファイルを書く。
module.exports = {
overrides: [
{
test: "./src/utils/hoge.js",
sourceType: "script"
},
{
test: "./src/utils/fuga.js",
sourceType: "script"
}
]
};
デフォだとmoduleとして読み込んでるみたいで、export defaultで定義しておかないとダメになるって事なんかな?で、それをmoduleじゃなくてscriptファイルとして読み込めっていう設定なのかしら。いまいち分かってない。
本来はソースをexport default的なやつに直した方がいいんじゃないかと思う。今時の作り方で言えば、即時関数自体やめた方がよいのかしらね。
Vueで「babel.config.js」使ってる場合も同様に下の感じで書く。
module.exports = {
presets: ["@vue/app"],
overrides: [
{
test: "./src/utils/hoge.js",
sourceType: "script"
},
{
test: "./src/utils/fuga.js",
sourceType: "script"
}
]
};