繁体   English   中英

在 Angular + Electron 应用程序中使用 Better-sqlite3:模块解析失败:意外字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM