nodejs:找不到模块 'passport'

nodejs: Cannot find module 'passport'

在开始探索 Node.js 时,我遗漏了一些相当基本的东西。我正在尝试使用 passportjs 身份验证构建一个小应用程序。

我的 app.ts 中有以下行:

import passport = require("passport");

以下是我的package.json:

{
    "name": "ftct",
    "version": "0.0.0",
    "description": "ftct",
    "main": "app.js",
    "author":
    {
        "name": "Mark.Norgate",
        "email": ""
    },
    "dependencies":
    {
        "express": "3.4.4",
        "jade": "*",
        "passport": "^0.3.2",
        "stylus": "*"
    }
}

然而,Visual Studio 2015 抱怨:

Build: Cannot find module 'passport'.

我错过了什么?我已经阅读了一些 passportjs 的文档,但到目前为止还没有任何内容表明可能是什么问题。

向您的 package.json 添加新模块实际上不会在存储库中包含依赖项。在将依赖项添加到 package.json 之后,您需要 运行 npm install,或者您可以使用 npm install <package name> 之类的东西安装包。在这种情况下,您需要 npm install passport.

npm install 将从 npm 下载源并将其放入 ./node_modules 目录。

npm install documentation

变化:

import passport = require("passport");

至:

var passport = require("passport");

我在 package.json 中安装并正确保存了护照时遇到了类似的问题,但仍然出现错误。

我的问题是 package.json 中有行

"engines": {
    "node": ">=6.9.1"
  },

我将我的 package.json 与其他在线示例进行了比较,然后删除了该行并且它起作用了。

删除 node_modules,删除包-lock.json,然后 运行 npm install 然后 运行 npm install --save passport。

我遇到了同样的问题并做了上面的例子,但我只是通过更改护照的版本解决了它,现在我不知道为什么,但是对于版本 0.4.1 我的应用程序无法运行(甚至需要模块而不使用它),为了解决它,我只是 运行 下面的命令 npm install passport@0.4.0