Я использую dojo для разработки на стороне клиента. Проект в целом построен на Node, но для фронтэнда я использую Dojo. Я относительно новичок в использовании dojo, но мне удалось создать свои собственные виджеты и отобразить их на html-странице с относительно небольшим количеством проблем. Теперь я пытаюсь включить использование внешней библиотеки Node.js { SheetJS } в виджет dojo. Я перепробовал все, что мог придумать, чтобы заставить его работать, но мне кажется, что каждая другая вещь, которую я пробую, у меня какая-то ошибка, отличная от предыдущей попытки.
Моя файловая структура выглядит примерно так:
My Project
Public
Dojo
Dojo
Dijit
Dstore
Templates
Я пробовал следующее:
- Добавление полной папки xlsx, загруженной с GitHub, в папку
public/dojo
. Затем я попытался сделать следующее:
define([
"dojo/_base/declare",
"xlsx/xlsx"
],
function (declare, xlsx) {
// ... declare and other things ...
/* Generate Workbook */
console.log(xlsx); // prints: not-a-module
var wb = xlsx.utils.book_new();
var ws = xlsx.utils.aoa_to_sheet(tempArr);
xlsx.utils.book_append_sheet(wb, ws, "SheetJS");
/* Trigger Download with `writeFile` */
xlsx.writeFile(wb, "SheetJS.csv", {compression:true});
});
Я получаю ошибку:
Uncaught TypeError: Невозможно прочитать свойство 'book_new' из неопределенного
- Использование тега script, взятого из GitHub README:
<script lang="javascript" src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
define([
"dojo/_base/declare",
"https://unpkg.com/xlsx/dist/xlsx.full.min.js"
],
function (declare) {
// ... declare and other things ...
/* Generate Workbook */
console.log(XLSX); // prints: {}
var xlsx = XLSX;
var wb = xlsx.utils.book_new();
var ws = xlsx.utils.aoa_to_sheet(tempArr);
xlsx.utils.book_append_sheet(wb, ws, "SheetJS");
/* Trigger Download with `writeFile` */
xlsx.writeFile(wb, "SheetJS.csv", {compression:true});
});
Ошибка здесь:
Uncaught TypeError: Невозможно прочитать свойство 'book_new' из неопределенного
cd
входя в public/dojo/dojo/
и делая npm install xlsx
, затем пытаясь сделать следующее:
define([
"dojo/_base/declare",
"dojo/node!xlsx"
],
function (declare, xlsx) {
// ... declare and other things ...
/* Generate Workbook */
console.log(xlsx);
var wb = xlsx.utils.book_new();
var ws = xlsx.utils.aoa_to_sheet(tempArr);
xlsx.utils.book_append_sheet(wb, ws, "SheetJS");
/* Trigger Download with `writeFile` */
xlsx.writeFile(wb, "SheetJS.csv", {compression:true});
});
Я получаю ошибку:
Uncaught Ошибка: не удается найти Node.js требуется
Интересно, связана ли проблема с библиотекой XLSX, и когда она пытается найти XLSX.utils
, она не может найти утилиту, которую я хочу использовать?
Все идеи приветствуются. Заранее благодарю за любую помощь или идеи, которые приходят мне на помощь.