NodeJS 无法解析序列化包

zzoitvuj  于 2023-04-20  发布在  Node.js
关注(0)|答案(8)|浏览(156)

我正在尝试在我的Mac OS 10.12.6中安装sequelize-cli。
在终端,我做到了
npm install -g sequelize-cli
我有

npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
/usr/local/bin/sequelize -> /usr/local/lib/node_modules/sequelize-cli/bin/sequelize
/usr/local/lib
└── sequelize-cli@2.8.0

然后我试着
sequelize model:create --name User --attributes name:string,complete:boolean
我有
无法解析请求“/user/bheng/Sites/BASE”。
我甚至尝试使用--save,就像这个post建议的那样。
npm install -g sequelize-cli --save
我得到了同样的结果。

npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
/usr/local/bin/sequelize -> /usr/local/lib/node_modules/sequelize-cli/bin/sequelize
/usr/local/lib
└── sequelize-cli@2.8.0

sequelize model:create --name User --attributes name:string,complete:boolean
无法解析请求“/user/bheng/Sites/BASE”。
我还应该尝试什么?

ehxuflar

ehxuflar1#

在sequelize-cli package.json文件中,sequelize是作为devdependency提到的,这意味着当你执行npm install sequelize-cli时,它不会安装它。我猜你没有安装sequelize本身,这就是错误所说的。
无法解析请求“/user/bheng/Sites/BASE”。
安装sequelizex 1 m1n1x(或global),事情应该是好的。
PS:Great answer对不同的依赖关系和它们的含义

8dtrkrch

8dtrkrch2#

我遇到了同样的问题。我安装了sequelize-cli,忘记添加sequelize本身:
npm install sequelize

cig3rfwq

cig3rfwq3#

你可以试试这个
npm install --save-dev sequelize sequelize-cli
npx sequelize-cli init
一旦你得到modelsmigrations文件夹,意味着sequelize正在工作。

fnvucqvd

fnvucqvd4#

你需要在全局安装sequelize。
npm install -g sequelize

yk9xbfzb

yk9xbfzb5#

首先你需要安装sequelize包,然后执行cli命令。

ne5o7dgx

ne5o7dgx6#

我有一个类似的情况下,当我试图运行任何sequelize命令。
sequelize initsequelize --help
我会得到错误:
Unable to resolve sequelize package in <my-project-directory>
上面的解决方案都没有帮助我的案例,但是经过进一步的挖掘,我发现这个article谈论了安装依赖项的顺序的重要性。
我先安装了我的开发依赖项(sequelize-cli在sequelize之前),这就是为什么它不工作。
因为这是一个新的项目,我只是删除了我的yarn文件和package.json(其他文件保持不变)并重新开始,这次我做到了:

  1. yarn init
  2. yarn add <my dependencies>
  3. yarn add --dev <my development dependencies>
    这解决了我的问题。
kg7wmglp

kg7wmglp7#

是的。这是“正常”的,CLI将尝试在当前工作目录和/或节点路径中找到sequelize软件包。因此,您可以将软件包安装在本地目录或任何父目录或全局空间中。
more answers

xxls0lw8

xxls0lw88#

下载sequelize和sequlize-cli时,必须使用-g选项全局安装
npm install -g sequelize
npm install -g sequelize-cli
就这样

相关问题