我刚刚使用typescript启动了一个新的nodejs项目。我安装了Typings (https://github.com/typings/typings),并用它安装了NodeV4.x和ExpressV4.x的参考文件。
我的节点版本是v4.2.6我的typescript版本是v1.7.5
我的项目目录布局如下:
package.json
tsconfig.json
typings.json
src/
app.ts
typings/
main.d.ts
main/ambient/node/node.d.ts
main/ambient/express/express.d.ts
typings/main.d.ts的内容如下:
/// <reference path="main/ambient/express/express.d.ts" />
/// <reference path="main/ambient/node/node.d.ts" />
tsconfig.json的内容如下:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
}
}
typings.json上的内容如下:
{
"dependencies": {},
"devDependencies": {},
"ambientDependencies": {
"express": "github:DefinitelyTyped/DefinitelyTyped/express/express.d.ts#dd4626a4e23ce8d6d175e0fe8244a99771c8c3f2",
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#1c56e368e17bb28ca57577250624ca5bd561aa81"
}
}
src/app.ts的内容如下:
'use strict';
///<reference path="../typings/main.d.ts"/>
import * as express from "express";
这非常简单,应该会产生一个基本的应用程序。但是,当我尝试编译它时,我得到了错误error TS2307: Cannot find module 'express'.
我尝试过重新排列类型文件,更改引用路径标记中的相对路径,使用tsconfig.json中的files
字段来指示引用路径,而不是使用文件中的内联标记,所有这些都无济于事。我还尝试过直接在命令行上使用gulp-typescript
、gulp-tsc
和tsc
进行编译。
当我尝试使用crypto
、http
、fs
等nodejs内置模块时,我得到了类似的错误。
这些引用似乎是有效的--我遗漏了什么?
发布于 2018-03-06 23:38:41
我知道这是一个老生常谈的问题,很抱歉我把它撞上了,但它是谷歌的首批链接之一。
既然上面没有解决我的问题,我最终解决了它,我想我应该分享…在我的例子中,是相对路径导致了这个问题。
我的打字结果在
typings/bootstrap
、typings/react-dom
、typings/react
等。
react-dom
one有一个import from 'react'
。要修复我的代码,我必须将其编辑为'../react/react'
。很简单!
发布于 2019-04-18 04:02:14
以上这些对我都不起作用--所以我希望这能帮助到其他人。(我正在使用VS Code)。
这个问题突然发生在我的一个服务上,这个服务在几个模块中被引用了。在保存了一个不使用该服务的完全不相关的组件后,其中两个使用该服务的组件报告了“找不到模块”错误。我能够修复它,只需将声明更改为无效文件夹,保存文件,然后将其更改回正确的路径。
https://stackoverflow.com/questions/35122246
复制相似问题