gpt4 book ai didi

javascript - Webpack sequelize,sqlite3 错误找不到模块 sqlite3

转载 作者:行者123 更新时间:2023-12-03 17:33:21 27 4
gpt4 key购买 nike

我尝试将 sequelize 和 sqlite3 与 Electron 一起使用,但在将其与 webpack 一起使用时遇到问题。要测试我描述中提供的项目,请在

之前执行 npm install

示例 1:我尝试了两个项目,一个没有 webpack,它运行良好:sqlite3 正确加载并将数据写入数据库。 https://www.dropbox.com/sh/yag6690rnc5l9y0/AAA0WeKvnHxhxY4qtxhHONWma?dl=0

npm start will launch node_modules/.bin/electron . 

它启动使用 index.js 文件的 index.html:

Project 1 Structure

示例 2: 我使用 webpack 编译项目,因为我使用 ES6 语法(在提供的示例中,语法不是 ES6,它只是为了重用同一个文件如示例 1)。 https://www.dropbox.com/sh/g38305knvrpdala/AAANbVBXlc-scBrzdCQTqqI7a?dl=0

npm start 将编译 index.js 入口点并输出一个 bundle.js 文件,供 Electron 应用程序的 index.html 使用。

Project 2 Structure

当我启动第二个示例时,加载使用 webpack 编译的 bundle.js 文件的 index.html 出现以下错误:

Error

要查看 ERRRRR 问题,

与提供的链接不同,该链接不是关于将 webpack 与 Electron 一起使用。该链接是我的示例 1 项目,对我来说,一切都在第一次尝试时完美运行,无需再做任何事情。但是我尝试了为我的 webpack 示例 2 提供的所有解决方案,但没有任何效果。

我不明白为什么,在基本示例中,将 index.js 文件直接包含在 html 中时,它可以正常工作,但是当被 webpack 处理并包含在同一 html 中时,它就不起作用了?我在这里错过了什么吗?

如果不使用 webpack 编译,一切正常吗? WebPack 让我编写 ES6 并将所有内容拆分为一个包,但如果我手动重写所有文件并仅使用一个文件,它将起作用......所以从我的 Angular 来看,这更像是一个 webpack 行为/配置问题。

最佳答案

我终于找到了解决办法,问题是像sqlite这样的node_modules文件夹被捆绑在了bundle.js中。

下面的链接对此提供了很好的解释,并解释了使用 webpack 的后端配置,并防止在使用 require 指令时捆绑 node_modules。

http://jlongster.com/Backend-Apps-with-Webpack--Part-I

解决我的问题的代码是:

var nodeModules = {};
fs.readdirSync('node_modules')
.filter(function(x) {
return ['.bin'].indexOf(x) === -1;
})
.forEach(function(mod) {
nodeModules[mod] = 'commonjs ' + mod;
});

然后我将 nodeModules 添加到 webpack 的外部配置中

module.exports = {

module: {
.....
externals: [nodeModules]
};

如果我设置 externals : ["sequelize"]

它也适用于我

关于javascript - Webpack sequelize,sqlite3 错误找不到模块 sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com