【问题标题】:NodeJS command "npm install -g" is not working?NodeJS 命令“npm install -g”不起作用?
【发布时间】:2016-12-19 13:24:03
【问题描述】:

我正在尝试在节点中运行简单的快速服务器。但是当我安装依赖项时,它给了我节点“找不到快递”的错误。

这里是控制台日志

asus@DESKTOP-PL2TIDL MINGW64 /f/nitishWorkspace/nitishGitRepo/chatApp (master)
$ npm install -g express
express@4.14.0 C:\Users\asus\AppData\Roaming\npm\node_modules\express
├── array-flatten@1.1.1
├── escape-html@1.0.3
├── encodeurl@1.0.1
├── content-type@1.0.2
├── range-parser@1.2.0
├── fresh@0.3.0
├── path-to-regexp@0.1.7
├── cookie-signature@1.0.6
├── etag@1.7.0
├── content-disposition@0.5.1
├── vary@1.1.0
├── serve-static@1.11.1
├── methods@1.1.2
├── merge-descriptors@1.0.1
├── parseurl@1.3.1
├── cookie@0.3.1
├── utils-merge@1.0.0
├── depd@1.1.0
├── qs@6.2.0
├── on-finished@2.3.0 (ee-first@1.1.1)
├── finalhandler@0.5.0 (unpipe@1.0.0, statuses@1.3.0)
├── debug@2.2.0 (ms@0.7.1)
├── proxy-addr@1.1.2 (forwarded@0.1.0, ipaddr.js@1.1.1)
├── accepts@1.3.3 (negotiator@0.6.1, mime-types@2.1.11)
├── type-is@1.6.13 (media-typer@0.3.0, mime-types@2.1.11)
└── send@0.14.1 (destroy@1.0.4, statuses@1.3.0, ms@0.7.1, mime@1.3.4, http-errors@1.5.0)

asus@DESKTOP-PL2TIDL MINGW64 /f/nitishWorkspace/nitishGitRepo/chatApp (master)
$ node server.js
module.js:327
    throw err;
    ^

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (F:\nitishWorkspace\nitishGitRepo\chatApp\server.js:1:75)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)

我认为问题出在这几行

express@4.14.0 C:\Users\asus\AppData\Roaming\npm\node_modules\express

asus@DESKTOP-PL2TIDL MINGW64 /f/nitishWorkspace/nitishGitRepo/chatApp (master)

您可以注意到这里的路径不同。我认为依赖项正在安装在不同的目录中,并且节点无法访问它。 我该如何解决这个问题?

【问题讨论】:

  • 也许在你的应用目录中安装 express。仅当您想从命令行运行它们时才使用全局模块。所以只要运行 npm i express 就可以了。

标签: node.js


【解决方案1】:

尝试将 express 安装到 package.json 中的依赖项中

npm install --save express

如果您没有 package.json,您可以在项目的根目录中使用以下命令创建一个。

npm init -y

此命令使用所有默认值在您的根目录中创建一个 package.json。

注意

如果你使用:

npm init

你会被问到一系列问题,但你可以稍后通过编辑你的 package.json 来设置这些问题

See the docs here for more information about package.json

For more information about setting up dependencies see this answer on SO

编辑地址评论

Regarding using globally installed dependencies see this SO q&a

【讨论】:

  • 这再次在 node_modules 文件夹中创建依赖项的本地副本,我真的不想这样做。我只想在全球范围内安装它们。
【解决方案2】:

您应该在您的聊天应用中安装 express locally.. do npm install express...

【讨论】:

    【解决方案3】:

    您可能想要安装 ExpressJS CLI 生成器,如果是这种情况,请运行此命令

    npm install express-generator -g

    然后你可以输入

    express my_app

    创建一个包含整个结构的文件夹。然后进入创建的文件夹:

    cd my_app

    并输入:nam install,以安装所有依赖项并表达自己。

    【讨论】:

      【解决方案4】:

      所以我发现了问题:问题出在 PATH 上。节点找不到此路径express@4.14.0 C:\Users\asus\AppData\Roaming\npm\node_modules\express 所以你可以看看这个 --> answer.

      我没有合并问题,因为这里的问题不同但解决方案相同。

      希望这能解决问题。

      【讨论】:

        猜你喜欢
        • 2021-08-10
        • 2019-12-11
        • 2016-11-09
        • 2013-10-13
        • 2021-04-11
        • 2017-09-14
        • 1970-01-01
        • 2022-10-01
        • 2013-12-04
        相关资源
        最近更新 更多