将TypeScript JS输出嵌入DLL作为资源

4
我正在编写一个DLL库,需要提供一些JavaScript代码给父网站使用。这些JavaScript代码将是项目中TypeScript文件的编译输出。
由于TypeScript已经合并到Visual Studio中,它不会将输出文件加入项目中。对于Web项目这样做很有意义,但是对于DLL来说则不太适用。
目前我的解决方法是手动将.js输出文件包含在项目中,并将其标记为嵌入式资源,以便可以导出并在网站中使用。然而这样做会导致文件处于TFS源代码控制下,如果检查后只读则会导致编译错误。所以我必须一直保持这些.js文件处于检出状态。
想知道是否有其他人可能建议的替代方案?
1个回答

3

针对这个问题,目前没有明显的解决方案。

在我们开发Visual Studio中的TypeScript项目系统时,当我们将.js文件作为.ts文件的子项包含在项目中时,就会遇到这个问题。每个使用TFS的人都抱怨说.js文件是只读的,这很烦人,所以我们将其从项目中删除了。但此时,那些没有使用TFS的人又抱怨说不在项目中没有.js文件也很不方便。

幸运的是,他们可以轻松地从“在项目中”切换到“不在项目中”,反之亦然。但不幸的是,听起来你需要同时处于这两种状态。

你可以尝试建立一个独立的依赖项目,通过后期构建步骤有条件地检出.js文件。我没有尝试过,但这可能有效。


感谢@ryan-cavanaugh的输入-我想确保我没有漏掉什么。在.9之前(当它具有TS支持时),WebEssentials通过在编译时检查.js文件来工作得非常好-您可以考虑从中获取代码。 - Quango
刚刚发现 Visual Studio 2013(更新3)似乎已经解决了检出编译问题:如果您修改了一个 .ts 文件并导致编译,它会自动检出 .js 文件。太棒了!感谢 VS 团队。 - Quango
不确定那是否真的能够工作。我无法在2017或2022年使其工作。当.js文件是只读或已检入时,TS编译器会默默地不覆盖它,因此编译器输出会丢失,并且不会显示任何错误。这在生产环境中是一个问题,当.ts文件已更改时。不确定我是否做错了,或者它不应该像那样工作。 - Hefaistos68

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接