babelをアップデートしたら意味不明のトラブルが発生して悩んでいる。
http://swizec.com/blog/theres-a-bug-in-es6-modules/swizec/6753
私もこのポストの記事と同じ問題にハマっているらしい。すこし内容が違うかもしれないが。
"use strict";
export * from './audioNodeView';
export * from './eg';
export * from './sequencer';
上のre-exportをしたとき。babelの古いバージョンでは問題なかったのだが、今だとよくわからないエラーが出る。
To get a node path the parent needs to exist while parsing file
訳すと
ノードパスを得るには親がファイルを解析中存在している必要がある。
まったく意味不明だ。どうすればいいのだ。実はBabelのIssueに挙がっていたようなのだが、このIssueに関する件がことごとく削除されている。 でその消されたIssueに書かれてあったのを試すと確かにエラーは消える。それはこうだ。
"use strict";
export * from './audioNodeView';
export * from './eg';
export * from './sequencer';
// ダミーのexportを加える
export function dummy(){};
このダミーのexport
を書くとなぜかちゃんと動く。ちゃんと動くとは言っても以前の挙動とは異なっているが。どうも新バージョンではES2015の挙動に合うように動作が変更されているらしい。何が?というと、変数をexportするとimport側では読み取りのみとなる点である。これってES2015の規格に適合した動作なのかな?
規格書を読んで確認してみたいけど、先に進みたいのでとりあえず別の回避策で進めることにする。
ひょっとするとbabelifyを使っているから、トランスパイルした後のBrowserifyが出しているエラーかもしれないな。。