Estoy usando funciones de Firebase para crear una API que analice archivos CSV.
Cuando trato de usar csv-parse/sync en lugar de csv-parse, mi implementación en Firebase Functions falla con el siguiente error:
Error: Error parsing triggers: Cannot find module 'csv-parse/sync'' Require stack: - /Users/xxx/Programming/xxx/Firebase Functions/xxx/functions/lib/index.js - /usr/local/lib/node_modules/firebase-tools/lib/deploy/functions/runtimes/node/triggerParser.js Try running "npm install" in your functions directory before deploying.He importado usando:
import { parse } from 'csv-parse/sync';
Luego usa un código como este:
interface EventData { update: string; id: string; title: string; description: string; category: string; ages: string; place: string; placeCoordinate: string; startDate: string; startTime: string; length: string; url: string; arrName: string; } let events: Array<EventData> = [] const headers = ["update", "id", "title", "description", "ages", "place", "placeCoordinate", "startDate", "startTime", "length", "url", "arrEpost", "arrName", "validated", "skugg"] try { events = parse(text, {columns: headers, from: 6, quote: "\"", delimiter: ";", ltrim: true, rtrim: true}) }...Lo he instalado yendo a /functions-folder y ejecutando
npm install --save csv-parse
Implementación en la carpeta raíz con
firebase deploy
¿Es esto un problema con el marco, con firebase o estoy haciendo algo mal? El uso normal de "csv-parse" sin sincronización funciona bien. En ambos casos, parece importar bien en Visual Studio Code, pero no cuando se implementa con "sincronización". Intenté limpiar la carpeta node_modules, reconstruir el archivo package-lock.json, actualizar a la última versión de las herramientas de firebase, todo sin éxito.
He agregado una pregunta similar en la página de problemas del proyecto marco: https://github.com/adaltas/node-csv/issues/323
Si está utilizando Typescript, puede hacer
import parse from 'csv-parse/sync';o
import {parse} from 'csv-parse/lib/sync';