【问题标题】:sequelize.js can't find pg dependency when using webpacksequelize.js在使用webpack时找不到pg依赖
【发布时间】:2016-01-19 02:29:33
【问题描述】:

当需要 sequelize 时,我会收到一些关于“关键依赖项”的警告。 运行应用程序后出现以下错误:“错误:不支持方言 postgres。(错误:请手动安装 'pg' 模块)”。

但是 pg 和 pg-hstore 都安装了。

我认为问题在于 sequelize.js 动态寻找 postgres。我尝试使用 webpack ContextReplacementPlugin,但我不知道如何。

我正在使用 React Starter Kit 样板。导致问题的代码无非就是这样:

var Sequelize = require('sequelize');
//get the database info
import { dbModelLocation} from '../config';
import { dbConnectionConfig } from '../config';

var sequelize = new Sequelize(dbConnectionConfig.name,
  dbConnectionConfig.user,
  dbConnectionConfig.pass,
  dbConnectionConfig.options);

我从 webpack 得到的确切警告是:

./~/sequelize/lib/sequelize.js 中的警告 关键依赖项: 636:60-73 依赖的请求是一个表达式@ ./~/sequelize/lib/sequelize.js 636:60-73

./~/sequelize/lib/dialects/mssql/connection-manager.js 中的警告 关键依赖:15:15-71 依赖的请求是 表达式@./~/sequelize/lib/dialects/mssql/connection-manager.js 15:15-71

./~/sequelize/lib/dialects/mysql/connection-manager.js 中的警告 关键依赖:15:15-69 依赖的请求是 表达式@./~/sequelize/lib/dialects/mysql/connection-manager.js 15:15-69

./~/sequelize/lib/dialects/postgres/connection-manager.js 中的警告 关键依赖:16:41-92 依赖的请求是 表达式 16:102-153 依赖项的请求是一个表达式 @ ./~/sequelize/lib/dialects/postgres/connection-manager.js 16:41-92 16:102-153

./~/sequelize/lib/dialects/sqlite/connection-manager.js 中的警告 关键依赖:19:15-71 依赖的请求是 表达式@./~/sequelize/lib/dialects/sqlite/connection-manager.js 19:15-71

【问题讨论】:

  • 你能贴出导致这些错误的代码吗?
  • 只是在做“var Sequelize = require('sequelize');”将给出所有的 webpack 警告。实际上打开连接会导致 postgres 错误。
  • 您解决了这个问题吗?我遇到了这个错误,我们在 2019 年使用最新版本的续集... :(

标签: node.js postgresql npm sequelize.js webpack


【解决方案1】:

如果你和我一样在使用带有 Sqlite3 或 MySQL 的 Webpack 时遇到同样的问题,你需要使用 externals 并定义依赖项:

var config = {
  externals: ['pg', 'sqlite3', 'tedious', 'pg-hstore'],
};

更多信息可以在下面找到:

【讨论】:

    【解决方案2】:

    According to the Webpack author 解决方案是在捆绑时忽略node_modules。

    【讨论】:

      【解决方案3】:

      很抱歉回答老问题,但是当我尝试使用 sequelize 迁移时遇到了同样的错误。也许它会帮助某人。

      您必须在全局范围内安装“pg”包,它才能工作:

      npm install -g pg
      

      【讨论】:

        猜你喜欢
        • 2017-12-02
        • 2018-07-26
        • 1970-01-01
        • 2018-06-28
        • 2020-07-20
        • 2018-04-26
        • 1970-01-01
        • 1970-01-01
        • 2020-12-19
        相关资源
        最近更新 更多