【问题标题】:Having trouble including a dependancy in package.json在 package.json 中包含依赖项时遇到问题
【发布时间】:2015-02-16 11:33:51
【问题描述】:

我有一个 Angular 项目(实际上只是文档 tutorial),我想在我的项目中包含 node-mysql 模块 - 不必全局安装。

不确定我是否理解它是如何工作的,但我认为我所要做的就是将此模块作为依赖项添加到 package.json 并运行 npm install,但我收到错误:

    PS> cat .\package.json
    {
      "version": "0.0.0",
      "private": true,
      "name": "angular-phonecat",
       ...
      "dependencies": {
        "node-mysql": ">=2.5.0"
      },
      "devDependencies": {
        "karma": "^0.12.16",
       ...

错误:

PS> npm install
npm WARN package.json karma-chrome-launcher@0.1.7 No README data
npm ERR! notarget No compatible version found: node-mysql@'>=2.5.0'
npm ERR! notarget Valid install targets:
npm ERR! notarget ["0.1.1","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.2.0","0.2.1","0.2.2","0.2.3","0.2.4","0.2.5","0.2.6","0.2.7","0.2.8","0.2.9","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6","0.3.7","0.3.8","0.3.9","0.4.0","0.4.1"]
npm ERR! notarget
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd C:\testangular\ticketsys\angular-phonecat
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! code ETARGET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\testangular\ticketsys\angular-phonecat\npm-debug.log
npm ERR! not ok code 0

如何在我的项目中包含此依赖项?

【问题讨论】:

    标签: javascript angularjs node.js dependencies


    【解决方案1】:

    Node-mysql 版本 >2.5 还没有出来。 Node-mysql 的版本为 0.4.1。我怀疑您只是在寻找常规的 mysql npm 模块。 npm 上的 Mysql 版本为 2.5.4。

    尝试改用这个:

    "mysql": ">=2.5.0"
    

    如果您访问此页面:https://github.com/felixge/node-mysql。他们在安装说明中说要使用 npm install mysql。这可能有点令人困惑,因为他们的 github 页面是 node-mysql。

    您可以继续执行以下操作,而不是手动将其添加到依赖项中:

    npm install mysql --save 
    

    这只会在本地安装最新的(不是全局的,如果你想在全局安装它,你可以添加 -g 标志,但因为你不需要它!)。

    【讨论】:

    • 以防万一,如果node-mysql 是他想要的,运行npm install --save node-mysql 将安装所需的最新版本并将其正确添加到package.json。删除与您的 node-mysql 对应的行并运行该命令。一般来说,如果您只想要最新版本的软件包,只需使用 npm install --save 安装它
    • 只是为了确保我们谈论的是这个模块正确的同一件事 thttps://github.com/felixge/node-mysql。它只是客户端驱动程序对吗?
    • @JMerino 好吧,这就是我想要的。 “npm install --save node-mysql”不会全局安装吧?
    • 不,不会。要全局安装,请使用 -g
    • @red888 如果您尝试使用github.com/felixge/node-mysql,那么您正在寻找 npm install mysql 而不是 npm install node-mysql。它在 github 页面上说要使用 npm install mysql。 npm install node-mysql 实际上会安装一个完全不同的 pacakge,它实际上只是 mysql 的一个 orm。
    【解决方案2】:

    如其他答案中所述,npm 无法识别您指定的版本。我建议从你的 package.json 中删除该行,而是运行一个命令:

    npm install --save mysql
    

    这将在本地安装依赖项并将该行添加到您的 package.json(这就是 --save 标志的作用)。这会自动默认为 node-mysql 的最新稳定版本。

    一般来说,您唯一需要在 package.json 中指定实际版本的情况是,如果某个库修补了您真正想要的某些功能,在这种情况下,您可以指定一个版本,以便始终提供必要的功能那里。因此,如果可以,请务必开始使用 --save 标志。它超级有用。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 2020-09-05
      相关资源
      最近更新 更多