如何在Angular中使用csv-parse?

时间:2019-10-08 07:21:00

标签: angular

我在Vue项目中成功使用了csv-parse。 代码如下:

import * as csvParse from 'csv-parse';
const parse = require('csv-parse')

const parseOptions: csvParse.Options = {
    //options here...
};

var parser: csvParse.Parser = csvParse(parseOptions, function(data, err) {
    console.log(data);
}) as csvParse.Parser;

const parseCallback:csvParse.Callback = (err: Error|undefined, records: any, info: csvParse.Info) => 
{
    //code to run after parse...
};
parse(csvText, parseOptions, parseCallback);

我们切换到Angular 8,并且相同的代码开始引发此错误:

index.js:43 Uncaught ReferenceError: global is not defined
    at Object../node_modules/buffer/index.js (index.js:43)
    at __webpack_require__ (bootstrap:79)
    at Object../node_modules/safe-buffer/index.js (index.js:2)
    at __webpack_require__ (bootstrap:79)
    at Object../node_modules/readable-stream/lib/_stream_readable.js (_stream_readable.js:55)
    at __webpack_require__ (bootstrap:79)
    at Object../node_modules/readable-stream/readable-browser.js (readable-browser.js:1)
    at __webpack_require__ (bootstrap:79)
    at Object../node_modules/stream-browserify/index.js (index.js:28)
    at __webpack_require__ (bootstrap:79)

我添加了

declare function require(path: string): any;

处理打字稿中的要求。 我也尝试删除要求。我收到同样的错误。

我该如何解决?谢谢。

1 个答案:

答案 0 :(得分:0)

在安装ID DateIN ID DateOut 01 2019-09-20 09:28 07 2019-09-20 19:01 08 2019-09-20 20:28 11 2019-09-20 20:55 之后,您可以更改csv-parse并添加以下代码行:

polyfills.ts

然后在您的(window as any)['global'] = window; 中,尝试导入app.module.ts模块:

CSV

这里是相关的SO post

编辑

关于遇到的错误,请尝试将其添加到polyfills.ts中:

@NgModule({
    declarations: [
        ...
    ],
    imports: [
        ...
        CSVModule.forRoot(),
        ...
    ],
    exports: [
        ...
    ],
    providers: [
       ...    ],
    bootstrap: [AppComponent]
})

这应该可以解决您的问题。