【问题标题】:'Duplicate identifier' error when compiling typescript definition files to wwwroot folder将打字稿定义文件编译到 wwwroot 文件夹时出现“重复标识符”错误
【发布时间】:2015-05-13 10:16:39
【问题描述】:

我创建了一个 ASP.NET 5 项目,主要用于前端打字稿应用程序。

我正在使用 grunt 和 grunt-ts 进行编译。

我有一个“src”文件夹,其中包含我所有的打字稿文件

grunt-ts 编译 'src' 文件夹中的所有内容,并将其组合成一个 js 文件,然后将其放入 wwwroot 文件夹中。 还会生成一个 typescript 定义文件并放在 wwwroot 文件夹中。

使用 grunt/grunt-ts 编译可以完美运行。

问题: 当 wwwroot 文件夹中存在定义文件时,Visual Studio IDE 开始给我很多“重复标识符”错误。 这当然是因为定义文件。

有没有办法让 Visual Studio 忽略 wwwroot 文件夹(或任何文件夹),因为它是 IDE/内部打字稿编译?

【问题讨论】:

  • 在我看来 stackoverflow.com/q/29557837/195653 可能有你要找的东西。
  • 不,这涵盖了一个完全不同的主题
  • 不,是同一个话题。只需使用控制器获取 ts 文件内容,而不是将 ts 文件复制到 wwwroot 文件夹中。

标签: typescript asp.net-core visual-studio-2015 grunt-ts


【解决方案1】:

您想将tsconfig.json 文件添加到项目的根目录,其中包含以下内容:

{
  "compilerOptions": {
    "noImplicitAny": true,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": false,
    "module": "commonjs",
    "target": "es5"
  },
  "exclude": [
    "bower_components",
    "node_modules",
    "wwwroot"
  ]
}

tsconfig.json 文件负责 配置 TypeScript 编译。

  • compilerOptions - TypeScript 到 JavaScript 的编译选项。
    • "noImplicitAny": true - 不允许任何隐式变量。强制它们被显式声明。
    • "noEmitOnError": true - 出错时停止处理。
    • "removeComments": false - 不删除 cmets。
    • "sourceMap": false - 不要创建源映射文件(留给 gulp 插件)。
    • "module": "commonjs" - 使用 Common JS 模块。
    • "target": "es5" - 编译为 ECMAScript 5。
  • exclude - 从 TypeScript 扫描中排除 bower_components、node_modules 和 wwwroot 文件夹 (.ts) 或 TypeScript 定义 (.d.ts) 文件。

【讨论】:

    【解决方案2】:

    有没有办法让 Visual Studio 忽略 wwwroot 文件夹(或任何文件夹),因为它是 IDE/内部打字稿编译?

    从您的项目中排除它。

    【讨论】:

    • 我看不出这在 ASP.NET 5 项目中是如何实现的,因为它遵循文件夹结构,而且,如果我通过删除 wwwroot 文件夹或其他方式排除它,它会影响我的能力调试
    • @basarat 这目前不可能像您对 VS2015 所说的那样简单:(请参阅 stackoverflow.com/q/30175235/195653)。
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 2017-02-22
    • 2013-10-05
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多