LoginSignup
8
2

More than 3 years have passed since last update.

ejsをアップデートしたらejs-html-loaderが死んだ

Last updated at Posted at 2020-05-19

ejsを3.0.1から3.0.2以上(執筆時3.1.3が最新)にアップデートした際、Cannot read property 'forEach' of undefined と表示され、ビルドに失敗する。

これは3.0.2でレガシーなコードが消されてしまったため、dependencies に関する値が利用できなくなっている。

ejs-html-loaderは残念がら更新が2019年1月で止まってしまっており(このときも1年半ぶりのアップデートだった)、Issueはあれど対応はされていない状況

あまりコードは深堀りしていないのでこれで充分かどうかはわからないが、手元で動いた対応を記載しておく。
簡単に言えばdepsを利用しなければ良いということ。

node_modules/ejs-html-loader/src/render.js
export function render(ctx, src, data) {
  let filename = ctx.resourcePath;
  let delimiter = data.delimiter;
  let context = data.context;

  let tpl = compile(src, {filename, delimiter, context});


// depsを返さないようにする
  return {
    rendered: tpl(data)
  };
}

一応、プルリクエストは送ってみたが、マージしてもらえるかは謎
もしかして自分で別途公開したほうが早い?

とりあえずは ejsを3.0.1で固定して利用することをおすすめする。

ejs@3.0.2 以上に対応したローダーを作成しました

ejs-html-loader が全く更新されないので自前で公開してみた
https://qiita.com/bananacoffee/items/81c73af464f949a9b0b9

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2