Запустить модуль узла в браузере
Я пытаюсь загрузить и прочитать файл Excel с помощью этого модуля узла: read-excel-file, и в соответствии с инструкциями в браузере мне нужно поместить этот код в мой файл.js:
import readXlsxFile from 'read-excel-file'
const input = document.getElementById('input')
input.addEventListener('change', () => {
readXlsxFile(input.files[0]).then((rows) => {
// `rows` is an array of rows
// each row being an array of cells.
})
})
Но браузер не знает, что import readXlsxFile from 'read-excel-file'
, Следует отметить, что я использую http-server
увидеть мой проект на http://localhost:8080/
3 ответа
TL;DR: Вы должны скомпилировать свой js-код в более удобный для использования код. Для этого используйте bower, webpack или другие инструменты комплектации.
Длинная история: браузер не понимает импорт (потому что, например: где находится ресурс?). Вы можете использовать такие инструменты, как bower или webpack, для создания пакетов кода JavaScript, которые обнаруживают во время компиляции, что импорт XX из YY означает, что они должны искать в папке de node_modules или bower_modules для этого модуля и включать его в окончательный пакет.
PS: Имейте в виду, что не все модули npm могут работать в браузере, поскольку они являются модулями узла или наоборот (они предоставляют разные API).
Здесь есть две проблемы:
Пакет read-excel-file не поддерживает клиент, поэтому вы не сможете запустить его в браузере. Работает только на nodejs(сервер)
Предположим, что он поддерживает в клиенте (браузере), вы можете использовать модули JavaScript через тег script для современных браузеров или использовать ссылку CDN через unpkg.
Ответ может быть другой библиотеки. Одна из работ в браузере - это Sheljs.
Вот рабочая демоверсия здесь: https://sheetjs.com/demos/modify.html