Visual Studio的JavaScript项目types?
我有一个任务涉及到创build一个JavaScript库,然后由Visual Studio解决scheme中的多个项目使用。 理想情况下,我想find一个项目types,对于我的JavaScript代码,其行为就像是一个C#类库,即:
- 它会将JavaScript代码编译成输出** .js *文件(通过Closure进行缩小,检查…)
- 这个输出可以被其他项目“引用”,比如ASP.NET MVC项目
- 我可以指定我的项目的“构build顺序”(标准VSfunction)
VS 2010/11有可能吗?还是我需要自己编写一些BAT / PowerShell文件并编写脚本?
类似,但稍有不同的问题: 用于JavaScript / VBScript的Visual Studio项目模板?
根据我开发Asp.Net MVC的经验,Visual Studio对JavaScript有限的支持。 我想你可以做些什么来模仿你想要的行为:
-
创build一个项目来存储你的JavaScript文件,可能是一个类库项目,它并不重要,只要它支持生成事件。 把你的JavaScript文件放在新的项目中。
-
在这个项目上创build一个后期构build步骤,以使用外部工具来最小化JavaScript。 我使用YUI压缩机 。 您的构build后步骤应包含类似于以下内容的行:
java -jar $(ProjectDir)Scripts \ yuicompressor-2.4.7.jar $(SolutionDir)Scripts \ yourJsFile.js -o $(SolutionDir)Scripts \ yourJsFile.min.js –charset utf-8
-
在你的解决scheme中包含这个新项目。 然后为你的Asp.Net项目,设置你的Active Server Pages,以便它们引用JavaScript文件,我使用Razor语法作为示例。 具体到正确的path可能是棘手的:
@if (@Model.IsDebug) { <script src="@Url.Content("~/Scripts/yourJsFile.js")" type="text/javascript"> </script> } else { <script src="@Url.Content("~/Scripts/yourJsFile.min.js")" type="text/javascript"></script> }
同样,要确保您可以准确地引用Asp.Net项目中的JavaScript文件可能会非常棘手。 但我相信有办法做到这一点。 也许你可以让你的后期构build步骤将JavaScript文件复制到一些常见的位置。 如果你这样做了,你也会想把你的JavaScript项目的构build事件标记为“永远运行”,所以JavaScript文件总是被复制。
好问题(+1)。 我的决定是把所有的JavaScript通用文件分开的JavaScript项目,并使用链接的文件到所需的JS / Web / MVC项目文件。
这样你就可以从JavaScript项目端使用subversioning控制,并使用所有可用的工具压缩和合并单独的常规项目端的js文件。
我真的好奇这个! 如果有人提出其他更好的想法,请@评论我。
选项1:使用Web Essentials的ASP.NET Web项目
如果你只是想要一个前端JavaScript项目,这是一个简单的select。 Web Essentials易于在Visual Studio中使用和安装。 你可以使用它来简化缩小。 然后你可以使用Qunit进行testing。 这是一个非常简单和轻量级的JavaScript客户端开发的切入点。
选项2:Visual Studio的Node.js工具
使用Visual Studio的Node.js工具 。 它会给你很多这些好东西的项目模板。 你可能不会最终使用node.js,特别是如果你只是创build一个客户端的js库,但有node.js是有益的testing,你会希望/需要npm安装我原来的答案中提到的所有其他好东西备选scheme3)。
这个有很多设置。 对于某些.NET开发人员来说,这可能是一个障碍。
选项3:网站项目
这是我过去所做的:
我实际上在Eclipse中创build了这个项目 ! (不要恨我)。 后来,我用一个网站项目创build了一个Visual Studio解决scheme。 我安装了node.js,这当然不是必需的,但是我将它用作轻量级的Web服务器。
然后你可以使用Nuget或者Bower来安装其他的东西,比如:
- require.js进行模块pipe理
- 茉莉花进行unit testing
- 咕噜咕噜咕噜咕噜 (缩小)
- 你可以安装jslint或jshint代码修正。
并非所有这些东西都是必需的。 我认为Bower已经集成到了Visual Studio 2015中。其中一些需要命令行构build,但是一旦设置完成,只有很less的命令可以运行。