【发布时间】:2016-05-09 09:57:42
【问题描述】:
我刚刚使用 typescript 开始了一个新的 nodejs 项目。我安装了 Typings (https://github.com/typings/typings) 并用它来安装 node v4.x 和 express v4.x 的参考文件。
我的节点版本是v4.2.6 我的打字稿版本是 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 内置模块时,我遇到了类似的错误。
这些引用似乎是有效的——我错过了什么?
【问题讨论】:
-
这都是有效的。分享项目,我帮你看看
-
我只是在四处寻找,我注意到引用路径注释仍然存在于 .js 输出文件中。导入语句确实被正确解析为标准的
var express = require('express');行
标签: node.js express typescript typescript1.7