Чтобы создать пакет npm,
data которая представляет собой массив объектов JS, например.const export data = [{a:1, b:2}, {a:3, b:4}];
У меня есть работающая реализация Node, которая собирается с помощью Parcel. Он упаковывает файл данных (.csv) и index.js, который считывает (используя d3) и анализирует (используя fs) csv во время выполнения в константную переменную data. Это отлично работает в Node.
Связанная версия не работает из-за зависимости от fs, который предназначен только для Node. Итак, я хотел бы знать:
fs, которая удобна для браузера (я не мог понять это);


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вместо того, чтобы помещать CSV в файл .csv, вы можете экспортировать строку из другого файла JS, например. data.js:
export default `[paste csv here]`
Затем просто импортируйте его и используйте этот файл:
import csv from "./data"
Это хорошо, потому что после объединения CSV находится в том же файле, но не загромождает ваш код.
В качестве альтернативы я нашел пакет npm, который представляет собой плагин для посылок, который может сделать это за вас: https://www.npmjs.com/package/parcel-transformer-csv
Parcel или другие упаковщики для этого являются полным излишеством. Все, что вам нужно, это небольшой скрипт, который выполняет следующие шаги:
index.js, используя что-то вроде:fs.writeFileSync('./index.js', `export const data = ${JSON.stringify(myData)};`):
И затем важная часть заключается в том, что вы делаете это во время сборки, прежде чем опубликовать пакет. Опубликованному пакету нужен только сгенерированный файл, а не csv или скрипты сборки или какие-либо зависимости.
@RobertHarvey нет, потому что это происходит только во время сборки, а не во время выполнения. Это означает, что код запускается только при создании npm .tgz , но когда кто-либо использует пакет, нет ни fs, ни csv.
У меня такое ощущение, что импорт файла CSV - не единственная причина, по которой OP использует Parcel?
@код возможен! но звучало так, как будто это был единственный экспорт в этом пакете, и даже в этом случае это, вероятно, самое чистое решение.
Разве необходимость не зависеть от
fs(указанного в ОП) не исключает этого?