Я пишу JS пакет, который должен быть в состоянии прочитать файл данных, опубликованный вместе с пакетом.
Есть ли способ прочитать файл, который работает в обоих NodeJS и когда скомпилировано с Webpack?
Например, предположим, что это CSV-файл с именем data.csv
:
// NodeJS
const fs = require('fs');
const path = require('path');
const data = fs.readFileSync(path.join(__dirname, './data.csv'));
// Webpack
const data = require('raw-loader!./data.csv');
Вышеприведенное, вероятно, можно объединить в if / else, но это Возникают некоторые проблемы:
- Как заставить Webpack игнорировать вызовы
require
? - Есть ли способ уменьшить шаблон при выполнении одного и того же с несколькими файлами?
Идеальным решением была бы функция утилит, которую можно импортировать следующим образом:
const { loadData } = require('./utils');
const data = loadData('./data.csv', __dirname);
Это можно легко реализовать для NodeJS, но сложнее для Webpack. Может быть, можно использовать пользовательский загрузчик Webpack, чтобы заменить эти вызовы фактическими данными?