Closed2

npmのDanfo.jsの「danfojs@1.1.2(最新版)」に、Viteで使用できない不具合あったので対処法メモ(webpackで使うのが楽)

ツイーティ・ザ・フォックスツイーティ・ザ・フォックス

見落としてたので追記

この記事でも指摘済みだった!まずこっちを見てください。
https://zenn.dev/aidemy/articles/c41150aa4bf4c9#インストール
 

danfojs@1.1.2をViteで使用すると発生するエラー

Viteでdanfojs@1.1.2を使用しようとすると…

main.js
import * as dfd from "danfojs";

このようなエラーが発生してしまう。

21:49:26 [vite] Pre-transform error: Failed to resolve entry for package "danfojs". The package may have incorrect main/module/exports specified in its package.json.
21:49:26 [vite] Internal server error: Failed to resolve entry for package "danfojs". The package may have incorrect main/module/exports specified in its package.json.
  Plugin: vite:import-analysis
  (以下略)
ツイーティ・ザ・フォックスツイーティ・ザ・フォックス

エラー発生する原因と回避策(webpackで使うのが現実的?)

原因はモジュール関係の不具合。イシューとプルリクエストが2023年に出ていて、マージ待ちの状態。

下記のイシュー内に手動で解決する方法が出ているけど…
リポジトリをローカルにクローンして、danfojs/src/danfojs-browserpackage.jsonを手動で修正後、yarn build:esm-bundleを実行。その後に、ローカルに置いてあるdanfojsを、実際に使用するプロジェクトのpackage.jsondependencyで指定するというもので、かなりハードルが高い感じであった。

danfojs@1.1.2を使用したい場合は、Viteではなくwebpackを使うのが良さそう。webpackでは特に問題なく使用できることを確認した。
https://github.com/javascriptdata/danfojs/issues/594
 

xlsx(SheetJS)の脆弱性にも注意

danfojs@1.1.2 には、脆弱性のある古いverのxlsx(SheetJS)が使われている+SheetJSが諸事情によりnpmに最新verのパッケージを公開していないため、手動での修正が必要になる。これもイシューとプルリクエストが2023年に出ていて、マージ待ちの状態。クライアントサイドでデータフレームが扱える唯一無二のライブラリだけど、使用までに少し手順が必要だ。
https://zenn.dev/tweeteafox300/scraps/af81fd6891e4c5

このスクラップは6ヶ月前にクローズされました