#typescript #debugging #node-modules
Вопрос:
Мне нужно отладить библиотеку, в которой я использую node_modules
. К сожалению, библиотека написана на машинописном языке. Как я должен принудительно перекомпилировать отредактированный мной код машинописи?
К вашему сведению: Библиотека находится https://www.npmjs.com/package/hardhat.
Ответ №1:
Когда вы устанавливаете пакет NPM, он уже собран и скомпилирован в JavaScript.
Некоторые .ts
файлы все еще могут быть видны, но нет никакой гарантии, что вы сможете перекомпилировать их без проблем, поскольку они могут зависеть от конфигураций, отсутствующих в этой сборке.
Вы можете сделать несколько вещей:
Во-первых, вы можете попробовать использовать свой отладчик для установки точек останова в файлах машинописи. Если библиотека поставляется с исходными картами, это может сработать из коробки. С помощью отладчика вы можете просматривать или редактировать внутренние значения для отладки.
Во-вторых, вы можете напрямую редактировать скомпилированные .js
файлы библиотеки. Если вам просто нужно изменить несколько мелких вещей, обычно это самый простой способ, если .js
только файлы не были уменьшены.
В-третьих, вы можете попытаться перекомпилировать его. Бежать npm install -g typescript
. Затем найдите папку внутри папки библиотеки, содержащую tsconfig.json
файл, и откройте в ней терминал/cmd. Выполните команду tsc
или npx tsc
. В качестве альтернативы добавьте -w
флаг, чтобы он перекомпилировался при изменении файлов. Вы можете увидеть множество опечаток, но они не мешают компилятору компилироваться. Нет никакой гарантии, что это сработает.
В-четвертых, вы можете ознакомиться с документами сопровождающего о том, как вручную создать библиотеку с нуля. Это «правильный» способ, но он может занять очень много времени, если вы хотите только очень быстро что-то протестировать.
Комментарии:
1. И если вы выберете четвертый вариант, вы также можете использовать
npm link
отредактированный пакет в качестве зависимости.2. Подход npm link здесь не сработал. После связывания в моей папке node_modules по-прежнему отсутствует символическая ссылка на пакет «hardhat».