使用Angular2 rc5和VisualStudio2015保存问题的Typescript编译

时间:2016-08-28 00:28:14

标签: angular visual-studio-2015 asp.net-core-1.0

我在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中的解决方案,因此这可能会影响到一些人。

1 个答案:

答案 0 :(得分:1)

我看来,如果您使用此解决方案:https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507 修复“扩充中无效的模块名称,模块'../../Observable'无法找到。”与vs2015和各种版本的Angular(我使用的是rc5)相同的问题,它可以打破Typescript“compileOnSave”功能。撤消修复后,我的compileOnSave再次开始工作。

我对这两个问题的解决方案是升级到Typescript 2.0 beta。到目前为止,这已经解决了我的所有问题,并没有引入任何问题。