Как превратить приложение узла в расширение кода VS? - PullRequest
4 голосов
/ 18 апреля 2020

Я создал приложение для узла, которое использует модуль для работы с базой данных (лучше-sqlite3).

Оно отлично работает как приложение для узла. но теперь я пытаюсь сделать расширение VS Code, которое имеет почти такую ​​же функциональность.

Однако, когда я устанавливаю модуль, собираю и запускаю новое расширение, я получаю следующее сообщение:

Активация расширения 'undefined_publisher.myPlugin' завершилась неудачно: модуль '\? \ C: ... \ node_modules \ better-sqlite3 \ build \ Release \ better_sqlite3.node 'был скомпилирован с другой версией Node.js с использованием NODE_MODULE_VERSION 72. Для этой версии Node.js требуется NODE_MODULE_VERSION 75. Пожалуйста, попробуйте перекомпилировать. или переустановить модуль (например, используя npm rebuild или npm install) ..

Я понимаю, что расширения кода VS являются приложениями Electron, и они используют другую версию узла, чем один, который я создал для моего приложения чистого узла, но мне неясно, что мне нужно сделать в расширении для сборки модуля (лучше-sqlite3) с правильной версией узла?

1 Ответ

4 голосов
/ 25 апреля 2020

npm rebuild компилирует код под простым узлом. Он не будет создавать аддоны. Чтобы решить эту проблему, вы должны сделать следующее:

npm install --save-dev electron-rebuild

# Every time you run "npm install", run this:
./node_modules/.bin/electron-rebuild

# On Windows if you have trouble, try:
.\node_modules\.bin\electron-rebuild.cmd

Кроме того, если вышеперечисленное не работает, вам нужно выполнить очистку и восстановление, например:

  • Если вы не установили электронное восстановление, просто установите его с помощью команды: npm i -D electron-rebuild
  • Удалите из папки node-modules папки <your-module-name> и @<your-module-name>.
  • Удалить файл packages-lock.json
  • Выполнить npm i для установки неустановленных модулей
  • И, наконец, запустить ./node_modules/.bin/electron-rebuild или соответствующий windows эквивалент - .\node_modules\.bin\electron-rebuild.cmd Очень важно запустить вышеуказанная команда сразу после npm i.

Ссылка: Электронные документы - https://www.electronjs.org/docs/tutorial/using-native-node-modules

Аналогичная проблема - https://github.com/mscdex/cap/issues/92

Аналогичная проблема - https://github.com/serialport/node-serialport/issues/1910

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...