【问题标题】:ERROR: Please install mysql2 package manually错误:请手动安装 mysql2 包
【发布时间】:2018-11-09 20:42:30
【问题描述】:

当使用 sequalize db:migrate 命令时,我收到以下错误。看了一些之前关于类似问题的 cmets,人们说这是一个依赖问题,但每当我运行时

npm 安装 mysql2

npm install -g mysql2

我得到同样的错误。

larry@DESKTOP-NSSNPRR:/mnt/c/Users/larry/Desktop/node/AAF-NodeJS$
sequelize db:migrate

Sequelize CLI [Node: 10.1.0, CLI: 4.0.0, ORM: 4.37.10]

(node:2241) ExperimentalWarning: The fs.promises API is experimental
Loaded configuration file "db/config/database.json".
Using environment "development".

ERROR: Please install mysql2 package manually

这是我的 package.json,就像你们中的一些人要求的那样。

{
  "name": "aaf-website-node",
  "version": "0.0.1",
  "description": "Nodejs implementation of the achieve anything website",
  "main": "app.js",
  "scripts": {
    "start": "node bin/www",
    "dev": "node node_modules/nodemon/bin/nodemon.js bin/www",
    "test": "jasmine",
    "console": "node console.js"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/AchieveGirl/AAF-NodeJS.git"
  },
  "keywords": [
    "nodejs",
    "express"
  ],
  "author": "Larry Cherry",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/AchieveGirl/AAF-NodeJS/issues"
  },
  "homepage": "https://github.com/AchieveGirl/AAF-NodeJS/blob/master/README.md",
  "dependencies": {
    "body-parser": "^1.18.2",
    "bootstrap": "^4.0.0",
    "compression": "^1.7.2",
    "cookie-parser": "^1.4.3",
    "dotenv": "^5.0.1",
    "ejs": "^2.5.7",
    "eslint": "^4.19.1",
    "express": "^4.16.3",
    "express-ejs-layouts": "^2.3.1",
    "express-minify": "^1.0.0",
    "express-minify-html": "^0.12.0",
    "jquery": "^3.3.1",
    "lodash": "^4.17.5",
    "morgan": "^1.9.0",
    "mysql2": "^1.5.3",
    "node-fetch": "^2.1.2",
    "node-minify": "^2.4.1",
    "popper.js": "^1.14.3",
    "sequelize": "^4.37.10",
    "sequelize-cli": "^4.0.0",
    "serve-favicon": "^2.4.5",
    "webpack": "^4.1.1",
    "webpack-cli": "^2.0.12"
  },
  "devDependencies": {
    "nodemon": "^1.17.2",
    "pryjs": "^1.0.3"
  }
}

【问题讨论】:

  • 你能发布你的package.json文件吗
  • 我刚刚添加了它。希望对一些人有所帮助。

标签: node.js sequelize.js


【解决方案1】:

之所以会出现提示你安装mysql2模块的错误信息是因为db:migrate命令依赖于mysql2但是作为optionalDependencies,所以你必须安装@ 987654325@模块手动

【讨论】:

  • 我尝试使用 npm install mysql2 和 npm install -g mysql2 安装。还有另一种手动安装模块的方法吗?
  • 使用 Git 克隆仓库
【解决方案2】:

所以我终于找出了这个错误。当您在我的项目中调用从 sequelize-cli 的全局安装而不是本地安装的 sequelize 版本时,问题似乎来自于此。我所要做的就是从节点模块文件夹中调用脚本,它运行良好。当我需要以这种方式调用本地安装的包node_modules/.bin/sequelize db:migrate时,我正在以这种方式调用命令sequelize db:migrate

【讨论】:

    【解决方案3】:

    这个对我有用

    npm install mysql2 --save

    【讨论】:

      【解决方案4】:
      1. 列出你的全局 npm 包

        npm list -g --depth 0

      2. 卸载sequelize

        npm uninstall -g sequelize

      3. 在项目范围内安装sequelize

        npm install --save sequelize

      【讨论】:

        【解决方案5】:

        您是否在运行 sequelize db:migrate 之前尝试保存 config.json 文件?在我的情况下,那是我

        【讨论】:

          【解决方案6】:

          我在我的项目文件夹中全局安装了 mysql2 包:

          npm install mysql2 -g
          

          【讨论】:

          • 这与提问者已经尝试过的npm install -g mysql2有何不同?
          【解决方案7】:

          我无法调用 sequelize 的特定实例(本地 vs 全局),所以我卸载了我通过 yarn yarn global remove sequelize 添加的全局 sequelize,然后将其本地添加到我的项目 yarn add sequelize

          npm 等效项将是 npm -g uninstall sequelizenpm install sequelize

          请注意,如果有人遇到同样的情况,我确实安装了 mysql2。

          【讨论】:

            【解决方案8】:

            自从 5.2.0 版本以来,nodejs 附带了一个名为 npx 的实用程序,它注定被用作“包运行器”,因为它首先会在你的 node_modules 中查看包,你应该不会再遇到运行命令的麻烦它。

            现在应该将 NPM 用作依赖管理器而不是命令运行器。

            您可以检查here两者的差异

            【讨论】:

              【解决方案9】:

              我通过运行解决了它:-

              yarn add mysql2
              

              【讨论】:

              • Works nodejs 14LTS,只需确保删除所有 mysql2 全局 npm 安装,然后使用上述命令或等效的 npm i mysql2 安装它
              【解决方案10】:

              您可能已经运行npm install -g sequelize。您需要使用npm uninstall -g sequelize 撤消此操作,然后改用此npm install -g sequelize-cli。这对我有用。

              【讨论】:

                【解决方案11】:

                yarn add mysql2npm install mysql2

                重启你的终端

                完成!

                【讨论】:

                  【解决方案12】:

                  这对我有用:
                  npx sequelize-cli db:migrate

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-10-20
                    • 2014-11-15
                    • 2012-04-04
                    • 1970-01-01
                    • 2012-12-21
                    • 2017-01-28
                    • 2011-08-12
                    相关资源
                    最近更新 更多