预览失败 - 即使不包含打印文件,Visual Studio也会在发布时查找打字稿文件

时间:2016-06-12 04:28:54

标签: asp.net node.js visual-studio visual-studio-2015

我想反驳这个问题/答案: How to include TypeScript files when publishing?

问题是我正在尝试发布ASP.NET MVC 5项目。不幸的是,可怕的Visual Studio和饥饿的Jack Typescript解释器忽略了任何tsconfig.json文件并决定深入查找任何没有.js的.ts文件。我有很多嵌套的npm包,其中一些包含未编译的打字稿文件。

有趣的是,它们不包含在项目中(甚至不是感叹号)。 (我甚至检查过.csproj并且没有找到文件)。

这是一个错误吗?我怎样才能防止这种情况发生?使用VS 2015.2(更新2)。

1 个答案:

答案 0 :(得分:1)

我有一个非常类似的问题。发布保持失败,因为它找不到foo.js,因为它与我的ts / tsconfig文件不在同一目录中,即使outDir设置为另一个位置。我不知道它是不是一个bug,但我无法用tsconfig搞清楚。相反,我能够通过使用内置的 TypeScript Build 设置来实现工作。

  1. 首先,我从项目中删除了所有tsconfig文件(我确保保留备份以防万一)。 TypeScript Build 最初是灰色的,因为我的项目中有tsconfig文件。
  2. 接下来,我在Scripts下直接创建了一个新文件夹,以保存js文件。
  3. 然后我转到项目属性并选择了 TypeScript Build 标签。在输出下,我检查了将JavaScript重定向到目录并浏览到新创建的文件夹。我为所有构建配置重复了这个。
  4. 最后,我在项目中包含了新文件夹,然后构建了。如果您选择了显示所有文件图标,则可以在解决方案资源管理器中将未包含在项目中的文件夹和文件视为幻影图标。我认为如果你有多个带有自己的tsconfigs的TypeScript项目,文件结构会在所选的输出目录下复制,但我在很多情况下都没有测试过,所以我不确定。
  5. 显然,我必须将我的脚本包重定向到新创建的js结构。

    当我第一次看到这个过程时,我遇到了一些构建错误,主要是因为我在我的TypeScript代码中出现了自己的错误,我将tsconfig设置为方便地忽略。另一个错误是对象的多个引用,我通过删除定义文件并确保在 Typescript Build 中取消选中生成声明文件选项来设法修复。一旦我解决了这些问题,我就可以在没有这个恼人的错误的情况下发布 - 快乐的日子!