Прежде всего: я совершенно новичок в Node.js, поэтому, пожалуйста, потерпите меня, если это глупый вопрос.
Я пытаюсь заставить browserify и tsify работать с TypeScript и библиотекой SVG.js. Насколько я понимаю, я должен уметь
browserify и tsify.Шаг 1 прост, но шаг 2 вызывает у меня проблемы. Даже если я напишу простейшую программу на TypeScript, содержащую только строку import * as SVGJS from 'svg.js', а затем запущу команду, указанную в tsifyдокументы (browserify main.ts -p [ tsify --noImplicitAny ] > bundle.js), скомпилированный bundle.js файл будет иметь следующее содержимое:
Здесь я ожидал увидеть код всей библиотеки SVG.js. По крайней мере, это то, что я получу, если создам ванильный JS-файл, содержащий var SVGJS = require('svg.js'), и запущу browserify на это.
Может ли кто-нибудь сказать мне, что я делаю неправильно? Я установил все необходимые модули узла и не получаю предупреждений или ошибок во время компиляции. Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительную информацию.
@Fuzzyma Я так не думаю. Если я дополню свою программу несколькими строками кода, использующими импортированную библиотеку SVG.js, я получу тот же результат в моем файле bundle.js (за исключением добавленных дополнительных строк).
Хм, я никогда не использовал браузер и поэтому больше не могу с этим помочь. Однако вы можете попробовать использовать новую версию 3.0.12, которая написана с учетом esm. Может это поможет
@Fuzzyma Большое спасибо за вашу помощь! Я обновился до 3.0.12, но теперь компилятор TypeScript выдает следующую ошибку: node_modules/@svgdotjs/svg.js/svg.js.d.ts:296:18 - error TS2583: Cannot find name 'Set'. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later. Если я запускаю команду tsc main.ts --lib es2015, я получаю кучу новых ошибок (точнее, 118).
Я знаю, что это работает, потому что я проверил этот бит. Все дело в библиотеках, которые вам нужно включить. К сожалению больше не знаю. Вам нужен диск es6 и вам нужен Дом. Где-то в документах написано, какие либы доступны






Делает ли Browserify Treeshaking? Если это так, он не будет включать svg lib в комплект, если вы его не используете.