尝试运行“npm run serve:dev”时出现“错误:请手动安装pg包”的提示?

27

我试图运行一个带有脚本 npm run serve:dev 的应用程序,但当尝试运行 npm run serve:dev 时,它会出现错误 Error: Please install pg package manually

我已经尝试过 npm install -g pg','npm install -g pg-hstore

错误信息如下:

kshitij-mag@0.1.0 serve:dev /home/qroach/kshitij-mag nodemon --ignore './src/' --exec babel-node --presets babel-preset-env ./server/bin/www

[nodemon] 1.18.10 [nodemon] to restart at any time, enter rs [nodemon] watching: . [nodemon] starting babel-node --presets babel-preset-env ./server/bin/www /home/qroach/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:81 throw new Error(Please install ${moduleName} package manually); ^

错误:请在ConnectionManager._loadDialectModule (/home/qroach/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:81:15)手动安装pg包,然后再试。在新的ConnectionManager (/home/qroach/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:18:24)中,创建PostgresDialect (/home/qroach/node_modules/sequelize/lib/dialects/postgres/index.js:14:30) ,创建Sequelize (/home/qroach/node_modules/sequelize/lib/sequelize.js:241:20)。对象于/home/qroach/kshitij-mag/server/db/models/index.js:16:15处。模块编译 (internal/modules/cjs/loader.js:799:30),装载器 (/usr/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:144:5),模块需要的扩展名为(anonymous function) [as .js] (/usr/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:154:7),模块加载 (internal/modules/cjs/loader.js:666:32),尝试模块加载(internal/modules/cjs/loader.js:606:12),函数模块._load (internal/modules/cjs/loader.js:598:3),模块需要 (internal/modules/cjs/loader.js:705:19),要求 (internal/modules/cjs/helpers.js:14:16) 。于/home/qroach/kshitij-mag/server/controllers/AuthController.js:2:1处的对象。模块编译 (internal/modules/cjs/loader.js:799:30),装载器 (/usr/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:144:5),模块需要的扩展名为(anonymous function) [as .js] (/usr/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:154:7),模块加载 (internal/modules/cjs/loader.js:666:32),尝试模块加载(internal/modules/cjs/loader.js:606:12),函数模块._load (internal/modules/cjs/loader.js:598:3),模块需要 (internal/modules/cjs/loader.js:705:19),要求 (internal/modules/cjs/helpers.js:14:16)。[nodemon] 应用程序崩溃 - 在启动之前等待文件更改...

我期望它可以通过脚本运行,但实际上出现了错误。
7个回答

30

只需本地安装

npm install pg --save


3
安装了 pg 包,并且全局安装成功了!命令为:npm install -g pg --save - Mohit Manhas
为什么Sequelize不将pg作为依赖项? - undefined

17

我之前也遇到了同样的问题。请尝试像这样连接您的数据库:

import * as pg from 'pg';
import { Sequelize } from 'sequelize';

const sequelize = new Sequelize('postgres://admin:admin@localhost:5432/mydb', {
  dialectModule: pg
});

这对我很有帮助。更多信息在这里


真的有必要使用 import * as pg from 'pg' 吗?我认为最好只使用 import pg from 'pg' - Andre Goulart

2
//in your sequelize object initialization do this

import pg from 'pg';

{
   // your sequelize config
   dialectModule: pg
   ...
}

你的回答可以通过添加更多关于代码的信息以及它如何帮助提问者来改进。 - Tyler2P

2

使用以下命令全局安装:

npm install -g pg --save

本地安装对我来说没有成功,确保使用了-g标志。

1

当我从本地的node模块中运行时,它对我有效。

./node_modules/.bin/sequelize db:migrate


0

同时确保在运行npx sequelize-cli时已安装sequelize-cli

我只在Heroku上遇到了这个问题。盯着它看了很久,最终我明白了原因:我将sequelize-cli放在了devDependencies中,而Heroku必须将它们修剪掉。然后当我运行npx sequelize-cli时,它每次都会将sequelize-cli安装到某个全局位置。但是从那里开始,pg不存在。将sequelize-cli移动到dependencies中解决了这个问题。

顺便说一下:始终执行npx --no-install。即时安装是疯狂的,特别是像这样的对等依赖关系,我已经学到了。


-4

尝试删除您的 node_modules 文件夹并重新安装:

npm install

或者

yarn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接