我试图启动并运行我的第一个TypeScript和DefinitelyTyped Node.js应用程序,但遇到了一些错误。
当我尝试传输一个简单的TypeScript node.js页面时,我收到错误“TS2304:无法找到名称'require'”。我已经阅读了其他几次发生在Stack ;溢出上的此错误,我认为我没有类似的问题。我正在shell提示符下运行命令:
tsc movie.server.model.ts.
该文件的内容为:
'use strict';
/// <reference path="typings/tsd.d.ts" />
/* movie.server.model.ts - definition of movie schema */
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var foo = 'test';
在var mongoose=require('mongoose')
行上抛出错误。
typings/tsd.d.ts文件的内容为:
/// <reference path="node/node.d.ts" />
/// <reference path="requirejs/require.d.ts" />
.d.ts文件引用被放置在适当的文件夹中,并通过以下命令添加到typings/tsd.d.ts中:
tsd install node --save
tsd install require --save
生成的.js文件似乎运行良好,因此我可以忽略该错误。但如果知道为什么会出现这个错误,以及我做错了什么,我会很感激。
对于Typescript2.x,现在有两个步骤:
>
安装定义require
的包。例如:
npm install @types/node --save-dev
告诉TypeScript将其全局包含在tsconfig.json
中:
{
"compilerOptions": {
"types": ["node"]
}
}
第二步只有在需要访问全局可用函数(如require
)时才是重要的。对于大多数包,您应该只使用import package from'package'
模式。不需要在上面的tsconfig.json类型数组中包含每个包。
如果您只有一个文件使用require,或者您只是为了演示目的而这样做,您可以在TypeScript文件的顶部定义require。
declare var require: any
如果您使用的是TypeScript2.x,则不再需要安装类型或绝对类型。只需安装以下软件包。
npm install @types/node --save-dev
申报档案的未来(6/15/2016)
类型化和tsd等工具将继续有效,我们将与这些社区一起工作,以确保平稳过渡。
验证或编辑src/tsconfig.app.json,使其包含以下内容:
...
"types": [ "node" ],
"typeRoots": [ "../node_modules/@types" ]
...
确保是src文件夹中的文件,而不是根应用程序文件夹中的文件。
默认情况下,@types下的任何包都已经包含在构建中,除非您指定了这两个选项中的任何一个。阅读更多信息
使用类型(DefinitelyTyped的替换),您可以直接从GitHub存储库指定一个定义。
安装类型
npm install typings -g --save-dev
从DefinitelyType的repo安装requireJS类型定义
typings install dt~node --save --global
如果您使用Webpack作为构建工具,则可以包含Webpack类型。
npm install --save-dev @types/webpack-env
在CompilerOptions
下使用以下内容更新tsconfig.json
:
"types": [
"webpack-env"
]
这允许您执行require.insure
和其他Webpack特定的函数。
通过CLI,您可以按照上面的Webpack步骤,将“types”块添加到tsconfig.app.json
中。
或者,您可以使用预安装的node
类型。请记住,这将包括客户端代码的其他类型,而这些类型实际上是不可用的。
"compilerOptions": {
// other options
"types": [
"node"
]
}
问题内容: 我正在尝试启动并运行我的第一个TypeScript和DefinitelyTyped Node.js应用程序,并且遇到一些错误。 尝试转换简单的TypeScript Node.js页面时,出现错误“ TS2304:找不到名称’require’”。我已经阅读了Stack Overflow上多次出现此错误的信息,但我认为我没有类似的问题。我在shell提示符下运行命令: 该文件的内容是: 错
我是angular 2和typescript的新手,正在尝试为我的弹出窗口调用RocketLaunch函数。 如果我在弹出窗口外声明它不调用,但如果我在弹出窗口内移动它抛出此错误: 错误TS2304:找不到名称“$event” 提供以下相关代码和错误:
问题内容: 我正在尝试使用TypeScript在NodeJS中进行base64编码。 以下代码在JavaScript中可以正常工作。 当我在TypeScript中编写相同的内容并进行编译时,我得到Buffer is not found错误。 有人可以帮我在TypeScript中做同样的事情。 问题答案: 在顶部添加以下行: 它应该编译没有错误。 使用内置于库或其他全局对象中的节点需要声明,您可以像
我正在构建一个有角度的Firebase web应用程序,由于一些复杂的查询,我开始从Firebase中寻找云函数。 我的项目看起来像: 我遵循了经典教程:https://firebase.google.com/docs/functions/get-started 但是使用Firebase部署仅功能时的问题: 任何想法?我做错什么了吗? 版本:“firebase”:“^5.0.4”firebase函
当我在Task Run Explorer中编译时,我从一个大口中得到了这个错误,这很奇怪,因为我没有改变任何东西...无论如何,我在网上搜索,找到了一些解决方案,但都不起作用。 错误1 GulpuglifyError:无法缩小JavaScript 如果我做第二个解决方案,我会不会与兼容旧浏览器的问题?
我已经广泛地搜索了这个问题,但没有找到任何修复它的方法。我正在尝试使用webpack来运行单个jasmine测试。我试图在Angular网站上遵循教程,但它...不是真的正确或完整。 null