../node_modules/@mapbox/node-pre-gyp/lib/util/nw-pre-gyp/index.html
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> <!doctype html>
| <html>
| <head>
在我用nextron应用程序安装sqlite3后出现此错误
在此之后,我开始得到以下错误
ModuleParseError: Module parse failed: Unexpected token (9:6)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| // This script needs to be compatible with PowerShell v2 to run on Windows 2008R2 and Windows 7.
|
> using System;
| using System.Text;
| using System.Runtime.InteropServices;
之后,开始得到这个错误导入错误
Error: /home/Ankit/Projects/test/node_modules/electron/dist/resources/electron.asar/package.jsondoes not exist
> 1 | const sqlite3 = require("sqlite3").verbose()
^
不知道怎么遇到这种情况,有什么帮助就更好了,提前谢谢你了。
第一个错误得到解决,如果我添加以下代码到我的next.js.js文件
config.module.rules.push({ test: /.html$/, use: "html-loader", });
我通过将以下代码添加到next.config.js文件中解决了第二个错误
config.module.rules.push({
test: /\.cs$/,
use: "raw-loader",
});
也使用电子构建器
还使用了替代better-sqlite3,但在初始化时出现错误undefined indexOf。
我使用的是:node v16.20.0 sqlite3 v5.1.6@mapbox/node-pre-gyp v1.0.10
1条答案
按热度按时间alen0pnh1#
您正在尝试加载依赖于
@mapbox/node-pre-gyp
的二进制Node.js插件-node-sqlite3
。取决于你在做什么,这可能是不可能的。首先,这些模块在浏览器中不起作用。在Electron的情况下,它们将仅在Node.js进程中工作。
然而,在您的特定情况下,您也有
webpack
-可能是next.js
的一部分。webpack
试图将node_modules
打包成一个包,并阻塞了查找和加载共享库的代码。您必须手动告诉
webpack
将共享库(通常是以.node
结尾的文件)视为external
,并将require()
保留在代码中。查看node-sqlite3
的index.js
。您可能需要编辑它,以便.node
文件的路径是固定的,而不是自动检测-此webpack
无法处理。然后,如果您的代码在Node.js环境中执行,它将能够加载库。如果在UI呈现过程中加载它,它将失败。
我只是用
next.js
做了一些非常类似的事情:next.config.js
:(我使用自己的二进制模块,也使用
@mapbox/node-pre-gyp
,称为everything-json
)