[英]Using better-sqlite3 in an Angular + Electron app: Module parse failed: Unexpected character
在我的Angular + Electron 应用程序中,我试图安装一些 sqlite 库,以便从 sqlite 数据库文件中读取内容。
我已经安装了Better-sqlite3使用:
npm install --save better-sqlite3
npm install --save-dev @types/better-sqlite3
我试图用它做:
import * as sqlite from 'better-sqlite3';
// ...
const myDb = sqlite('/path/to/file.sqlite');
但是,当应用程序构建失败时:
错误在 ./node_modules/better-sqlite3/build/better_sqlite3.node 1:0 模块解析失败:意外字符 '' (1:0) 您可能需要一个合适的加载器来处理这种文件类型,目前没有加载器被配置为处理这个文件。 请参阅https://webpack.js.org/concepts#loaders (此二进制文件的源代码省略) ./node_modules/integer/build/integer.node 中的错误 1:0 模块解析失败:意外字符 '' (1: 0) 您可能需要一个合适的加载器来处理此文件类型,目前没有配置加载器来处理此文件。 请参阅https://webpack.js.org/concepts#loaders (此二进制文件省略了源代码)
看起来我不是第一个在使用 Electron 时遇到这个问题的人。 事实上,这个问题已经在这里和这里讨论过,但是我找不到适合我的解决方案。
您是否尝试过使用@angular-builders/custom-webpack
?
npm i @angular-builders/custom-webpack --save-dev
在您的 angular.json 文件中,在您的架构师下设置:
"architect": {
"build": {
"builder": "@angular-builders/custom-webpack:browser",
"options": {
"customWebpackConfig": {
"path": "./angular.webpack.js"
},
然后在项目的根目录添加一个自定义配置文件 angular.webpack.js:
module.exports = {
externals: {
'better-sqlite3': "require('better-sqlite3')"
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.