Node.js / Electron / React: msnodesqlv8 Установка предупреждает Критическая зависимость: запрос зависимости является выражением - PullRequest
1 голос
/ 22 января 2020

Я пытаюсь создать простое электронное приложение, основанное на шаблоне электронной реакции, которое запрашивает локальный экземпляр сервера Microsoft SQL, который у меня есть. Поскольку я хочу использовать Windows Authentication, кажется, что мне нужно использовать пакет msnodesqlv8, но при установке он выдает серию предупреждений, которые затем приводят к ошибкам и сбоям при запуске.

Моя системная среда - это электронно-реактивный шаблон (который включает в себя веб-пакет), установленный на 64-битном Windows 10, с локально работающим экземпляром MS SQL Server 2017. Я управляю пакетом через пряжу но npm install приводит к тем же проблемам. Cmd запускается от имени администратора. Мои версии процесса следующие:

chrome: "78.0.3904.130" electron: "7.1.4" node: "12.8.1" v8: "7.8.279.23-electron.0"

Точный журнал пряжи:

WARNING in ./node_modules/msnodesqlv8/lib/bootstrap.js 37:23-38
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/msnodesqlv8/lib/connection.js
 @ ./node_modules/msnodesqlv8/lib/sql.js
 @ dll renderer

WARNING in ./node_modules/msnodesqlv8/lib/bootstrap.js 57:25-40
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/msnodesqlv8/lib/connection.js
 @ ./node_modules/msnodesqlv8/lib/sql.js
 @ dll renderer

Кажется, это ошибка во включенном bootstrap библиотека, но я не нашел способа остановить или исправить это. Если кто-нибудь знает, как заставить этот драйвер работать (или какие-либо MS SQL Windows альтернативы аутентификации msnodesqlv8), я был бы признателен за помощь.

Edit

Я нашел предварительный обходной путь, спасибо TimelordUK / node-sqlserver-v8 / pull / 131 , используя следующие шаги:

  1. установить node-loader

npm install node-loader --save-dev или yarn add node-loader

добавьте следующее правило к вашему webpack.config.js (или webpack.config.base.js, если используете electron-react-boilerplate)

  {
    test: /\.node$/,
    use: 'node-loader'
  }
install node- sql -server-v8 / pull / 131

Если у вас уже установлен пакет mssqlv8, удалите его, запустив npm uninstall mssqlv8 или yarn remove mssqlv8. Затем переустановите указанный c запрос на получение с помощью npm или yarn:

npm install --save-dev TimelordUK/node-sqlserver-v8#pull/131/head

yarn add TimelordUK/node-sqlserver-v8#131/head

Скопируйте соответствующий двоичный файл .node из /node_modules/msnodesqlv8/lib/bin в каталог /app/bin.

В моем случае это был файл sqlserverv8.node.v12.13.0.electron.v7.1.2.x64.node. Ваша папка вывода в веб-пакете может отличаться, но для меня это папка app, так как я использую шаблон реагирования. Вы можете найти вашу выходную папку в конфигурации веб-пакета, убедитесь, что она содержит подпапку bin с соответствующим двоичным файлом .node.

Используйте msnodesqlv8 как обычно!
...