【问题标题】:Restify + TypeScript:Restify + TypeScript:
【发布时间】:2018-03-08 21:04:58
【问题描述】:

我有一个用 TypeScript 编写的 Node.js + Restify 应用程序。我尝试加载 Crypto 模块 (https://nodejs.org/api/crypto.html):

import * as crypto from "crypto";

当我编译脚本时,出现以下错误:

error TS2307: Cannot find module 'crypto'.

当我使用 JavaScript 而不是 TypeScript 时,它可以正常工作:

var Crypto = require('crypto');

我在同一个地方加载的其他模块工作正常,例如:

import * as bcrypt from "bcrypt";

我做错了什么?

【问题讨论】:

  • 它是您配置的一部分吗?
  • 是的,在我的 package.json 中: "dependencies": { "bcrypt": "^1.0.3", "crypto": "^1.0.1", ..... } 当我编译了我的打字稿(有错误)并运行了 javascript,它工作正常。

标签: javascript node.js typescript npm restify


【解决方案1】:

我有同样的问题,我已经解决了这个依赖:

  "dependencies": {
    "bcrypt": "3.0.0",
    ...
  },
  "devDependencies": {
    "@types/bcrypt": "^2.0.0",
    "ts-node": "5.0.1",
    "typescript": "2.6.2",
     ...
  }

之后,我可以毫无错误地导入模块

import * as bcrypt from 'bcrypt';

【讨论】:

    【解决方案2】:

    删除加密依赖项,因为它已被移入 NodeJS...没有该依赖项,导入在 Visual Studio 中的 njsproj 文件中对我来说工作正常:

    import * as crypto from 'crypto';
    

    如果您遇到更一般的类型问题或处于不理解 Node 的 IDE 或项目类型中,请检查您是否将类型作为开发依赖项,例如 @types/node

    【讨论】:

      猜你喜欢
      • 2020-01-19
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 2012-12-22
      • 2019-06-09
      相关资源
      最近更新 更多