我正试图一步一步地将一个角JavaScript (ES5)项目迁移到TypeScript 2.0,必须承认我很挣扎。
因此,首先,我将index.js更改为index.ts,并使用安装打字机的推荐方法 (npm install --save @types/node)代替了旧的typings.json方式。
构建安装程序使用gulp和browserify,现在按照建议的这里引入tsify和babelify。
褐化
//...
.plugin(tsify)
.transform(babelify, {
presets: ['es2015'],
extensions: ['.ts', '.js']
})
//...tsconfig.json
{
"files": [
"assets/app/index.ts"
],
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
}
}但是,生成失败的有:
TypeScript错误:. .tmp/public/app/index.ts(4,15):Error TS2304:无法找到名称'require‘。
tsify似乎没有将已安装的类型复制到输出dir,这将导致上述错误。
关于如何解决这个问题,有什么建议吗?
编辑
将node_modules/@types文件夹复制到我的C:驱动器的根目录可以消除错误,但是我不知道为什么.
发布于 2016-10-20 12:46:02
如果有人遇到同样的问题:
明确地在tsconfig.json中添加了tsconfig.json选项,修复了它。
"typeRoots" : ["./node_modules/@types"]这个“应该”是默认设置,但由于某种原因,它会搜索C:驱动器root下的@types文件夹。
来自TypeScript文档:
如果指定了typesRoots,则只包含typeRoots下的包。
https://stackoverflow.com/questions/40152768
复制相似问题