【问题标题】:How to use typescript with nodeJS - `require` problems如何在 nodeJS 中使用 typescript - `require` 问题
【发布时间】:2016-10-12 21:28:33
【问题描述】:

我正在建立一个新的节点/打字稿项目, 并且无法让基础工作正常进行。

'use strict';
let fetch = require("node-fetch");

给我error TS2304: Cannot find name 'require'.

所以我认为需要打字?试过了:

typings install node
typings install nodejs
typings install require

所有这些都给了

Unable to find "XXX" ("npm") in the registry

获取 require 或任何使用 typescript 的简单节点应用程序的正确方法是什么。

一旦开始,TS 就很棒,但是初始配置周围的流沙非常麻烦。 我也looked at this answer,但它并没有解决这个问题。那里的一些建议似乎不再有效。

我正在尝试编译到 ES6。 打字版本 1.0.5

使用tsconfig.jsontypings.json 我已经从一个单独的工作项目中复制并尽可能多地删除。我想我必须用镊子检查并尝试找出有什么不同。

【问题讨论】:

    标签: node.js typescript require


    【解决方案1】:

    TypeScript 2+ 支持:

    npm install --save @types/node
    

    打字

    typings install dt~node --global
    

    并查看Typings repo 上的文档。

    一般情况下,您可以尝试,例如: typings search node

    您应该会看到可用的类型及其source

    例如:nodedtenv 下有源。

    dt 是绝对类型存储库的缩写。这是社区制作的类型定义的大型 GitHub 存储库,但现在您必须指定是否要从此处安装它。通常,最好的来源是 npm,因为这些有希望由该存储库的核心团队维护。

    也可以指定版本[<source>~]<pkg>[@<version>][#<tag>] where <version> A semver range (E.g. ">=5.0")

    对环境类型使用--global 标志。

    Global is the new ambient:

    ambient 的使用现在是全球性的

    这意味着在 typings.json 中任何环境依赖项都应该重命名为 globalDependencies,任何环境DevDependencies 都应该重命名为 globalDevDependencies。

    这也意味着 --ambient 现在是 --global

    例如,我的typings.json 有以下内容:

    globalDependencies": {
      "node": "registry:dt/node#6.0.0+20160523035754",
    

    【讨论】:

    • 我假设 requireJS 来自该名称的项目,例如 requirejs.org 而不是内置节点 require 命令。我认为有一些单独的类型可以将节点的语法扩展用于 javascript。没有这些,打字稿就不能用于节点开发。我在以前的项目中确实有这个工作,但现在它无法安装......
    • 有一些 node 模块被列为 env 但试图从这里安装会给出一个非常神秘的消息:typings install env~node *[master] typings ERR! message Attempted to compile "node" as an external module, but it looks like a global module. 好像它试图编译节点?
    • 对于节点,我使用来自dt repo 的版本。
    • 我在最后添加了一个更新,其中包含我的 typings.json 中的节点
    • 谢谢,我以前没见过这种语法。那只是针对node6还是用于打字? (我现在卡在 node5 上)
    【解决方案2】:

    对于那些只想知道如何摆脱困境的人,请使用:

    typings install dt~node --global
    

    【讨论】:

    • 现在这个命令不会安装节点类型(什么都不做)。如果我之前安装过,typings install 会发出这个警告:typings WARN deprecated 2016-06-22: "registry:dt/node#6.0.0+20160608110640" is deprecated (updated, replaced or removed)
    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2016-09-12
    • 2021-03-16
    相关资源
    最近更新 更多