angular - 在 Angular + Electron 应用程序中使用 sqlite3:关键依赖项:依赖项的请求是一个表达式
问题描述
在我的Angular + Electron 应用程序中,我试图安装一些 sqlite 库,以便从 sqlite 数据库文件中读取内容。
我已经使用以下方法安装了sqlite3:
npm install sqlite3
npm install --save-dev @types/sqlite3
我试着用它做:
import * as sqlite from 'sqlite3';
// ...
const myDb = new sqlite.Database('/path/to/file.sqlite');
但是,当应用程序构建时,它会失败:
./node_modules/sqlite3/lib/sqlite3.js 中的警告 4:14-35 关键依赖项:依赖项的请求是一个表达式
./node_modules/node-pre-gyp/lib/pre-binding.js 中的警告 20:22-48 关键依赖项:依赖项的请求是一个表达式
./node_modules/node-pre-gyp/lib/util/versioning.js 中的警告 17:20-67 关键依赖:依赖的请求是一个表达式
../node_modules/npm/lib/npm.js 中的警告 124:16-56 关键依赖项:依赖项的请求是一个表达式
../node_modules/npm/lib/npm.js 中的警告 235:10-25 关键依赖项:依赖项的请求是一个表达式
../node_modules/npm/node_modules/encoding/lib/iconv-loader.js 中的警告 9:12-34 关键依赖:依赖的请求是一个表达式
./node_modules/node-pre-gyp/lib/util/compile.js 中的警告模块未找到:错误:无法解析“/home/shin/sources/Keira3/node_modules/node-pre”中的“node-gyp” -gyp/lib/util'
./node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html 中的警告 1:0 模块解析失败:意外令牌 (1:0) 您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理这个文件。见 https://webpack.js.org/concepts#loaders
| |
./node_modules/node-pre-gyp/lib/info.js 中的错误找不到模块:错误:无法解析“/home/shin/sources/Keira3/node_modules/node-pre-gyp”中的“aws-sdk” /lib' ./node_modules/node-pre-gyp/lib/publish.js 中的错误 找不到模块:错误:无法解析 '/home/shin/sources/Keira3/node_modules/node- 中的 'aws-sdk' ./node_modules/node-pre-gyp/lib/unpublish.js 中的 pre-gyp/lib' 错误模块未找到:错误:无法解析 '/home/shin/sources/Keira3/node_modules 中的 'aws-sdk' /node-pre-gyp/lib' ../node_modules/npm/bin/npm-cli.js 中的错误 1:0 模块解析失败:意外字符 '#' (1:0) 您可能需要适当的加载程序来处理此文件类型,当前没有配置加载程序来处理此文件。请参阅https://webpack.js。
!/usr/bin/env 节点 | ;(function () { // 包装器,以防我们处于 module_context 模式 | // windows:在此文件夹中运行“npm blah”
将调用 WSH,而不是节点。
在此线程中发布了此问题的解决方案,它是关于将以下内容添加到 webpack 配置文件中:
externals: { 'sqlite3':'commonjs sqlite3', }
但是我不清楚在我的 Angular 应用程序中添加此类配置的位置。
解决方案
我使用Custom webpack builder (angular-builders)解决了我的问题。
允许在不弹出 webpack 配置的情况下自定义构建配置(ng 弹出)
安装后,我现在可以在我添加的位置指定自定义 webpack 配置:
module.exports = {
externals: {
'sqlite3':'commonjs sqlite3'
}
};
我还必须跑步node postinstall && electron-builder install-app-dep
才能让它发挥作用。
推荐阅读
- azure - 电影py:从内存中的文本到语音导入音频
- excel - 使用 VBA 将多个列复制到单独的新工作簿中
- r - 将多个矩阵组合成一个数据帧
- azure-api-management - APIM - 响应数据屏蔽
- flutter - 在一段时间内更改按钮颜色
- apache-kafka - 在运行时设置一个spring cloud stream kafka的主题
- python - Python:如何在一个函数中分别绘制不同的图?
- node.js - 我试图创建一个包含三个成员的船命令,可能吗?,我尝试使用下面的代码但不起作用
- spring-boot - 将骆驼与 Google PubSub 组件一起使用会为 com.google.api.client.repackaged.com.google.common.base.Strings 提供 NoClassDefFoundError
- ios - 如何提取自己的智能手机使用数据