我在VS2015中安装了Angular2 rc5,并安装了MVC6。我在tsconfig.json中遇到过Typescript compileOnSave设置问题。我已经完成了所有可以找到的修复,包括在PATH环境变量中更改typescript的版本,它现在运行1.8.x而不是1.0.x.我在VS选项中尝试过设置来编译保存,这似乎没有什么区别。我已经尝试使用tsconfig.json中的watch设置,这会导致我的编译错误。
我决定使用gulp-watch和gulp-typescript功能让Gulp做到这一切,当我测试时,我意识到当我删除" outDir"中的任何.js文件时在我的tsconfig.json文件中设置的文件夹,它会自动重新创建所有.js文件。我知道这是执行此操作的打字稿,因为当我更改outDir设置时,它会在该文件夹中执行此操作。现在,如果我将compileOnSave设置为false,它仍会自动创建.js文件。奇怪的是,即使我只删除其中一个,它也会重新创建所有.js文件。我能够通过使用'更改' gulp-watch来解决这个问题。并且'添加'事件。
我的问题是,每次删除其中一个js文件时,重新创建所有js和js.map文件是否正常?更重要的是,我怎样才能将它编译为compileOnSave,因为它应该这样做?
这是我的tsconfig.json文件
{
"compileOnSave": true,
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noEmitOnError": false,
"noImplicitAny": false,
"outDir": "./app"
},
"exclude": [
"node_modules",
"wwwroot",
"typings/main",
"typings/main.d.ts"
]
}
- 更新 -
我相信我已经解决了这个问题。看来,如果您使用this方法处理VS2015打字机错误的问题(例如编译)Invalid module name in augmentation, module '../../Observable' cannot be found
,则会导致此compileOnSave问题。我解开了我做的文件交换,一切都很顺利。我相信这是Angular VS2015 quickstart中的解决方案,因此这可能会影响到一些人。
答案 0 :(得分:1)
我看来,如果您使用此解决方案:https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507 修复“扩充中无效的模块名称,模块'../../Observable'无法找到。”与vs2015和各种版本的Angular(我使用的是rc5)相同的问题,它可以打破Typescript“compileOnSave”功能。撤消修复后,我的compileOnSave再次开始工作。
我对这两个问题的解决方案是升级到Typescript 2.0 beta。到目前为止,这已经解决了我的所有问题,并没有引入任何问题。