検証環境
- Angular(12.0.5)
- csv-parse(4.14.3)
原因
-
csv-parse
はstream
というパッケージが必要なのですが、これはnode環境でのみビルドインで利用できるもので、ブラウザ環境で使うには少し工夫をする必要がある -
グローバル変数
global
,Buffer
,process
を定義する必要がある
というのが原因でした
なのでこれらに対処していきます
対応
必要なパッケージのインストール
$ npm i process util stream-browserify
Angular12以外のバージョンなら依存関係の中で上記のパッケージがインストールされていることがあるのでpackage-lock.jsonを確認してインストールされていれば、再度インストールする必要はない
1への対応
tsconfig.json
{
"compilerOptions": {
...
"paths": {
"stream": ["node_modules/stream-browserify"]
}
},
}
2への対応
pollyfills.ts
(window as any).global = window;
(window as any).Buffer = (window as any).Buffer || require('buffer').Buffer;
global.process = require('process');
参考