使用Angular 4和Angular CLI运行Visual Studio 2017
是否可以在Visual Studio 2017中运行Angular CLI生成的项目?使用Angular 4和Angular CLI运行Visual Studio 2017
我尝试生成Hello World应用程序,并且Visual Studio 2017无法运行它。
ng new HelloWorld
我打开文件夹作为网站,并单击开始。有没有人解决了这个问题?
“Loading ...”只是永远运行。
答案是否定,VS无法运行Angular CLI项目。 Angular CLI应用程序中没有.*proj
文件,它会告诉VS如何处理该项目。没有这个,VS只是一个代码编辑器。
如果你想开发/调试一个Angular 4应用程序,那么你可能想要考虑除了VS之外的另一个IDE。我使用VS Code。有了它,您可以按F5键轻松开始调试Angular CLI应用程序。您仍然需要CLI中的ng serve
才能在开发过程中运行该应用程序。
现在,如果你真的想用VS 2017做Angular开发,那么你可以看看VS的SPA Templates。
这些是ASP.Net Core MVC和Angular 4的混合体。它们并不算太坏。但是,他们确实有一点微软的混合方式。我的意思是,模板不一定遵循已知的Angular约定;他们已经微软了。如果你能过去,那么这些可以是一件好事。
我已经和他们玩过了,我可以诚实地说他们工作得很好,可以快速启动和运行。如果VS是您选择的IDE,那可以很好。当然,Angular CLI不能与这些一起使用。至少,我没有尝试过,我可能不会。
希望这可以帮助你。
UPDATE(2017年8月17日)
的Visual Studio 2017年15.3现在有内置的作为常规的Web应用程序的.NET的核心项目模板的角模板。 React和React/Redux模板也包含在内。您必须在“新建ASP.NET核心应用程序”对话框中选择ASP.NET Core 2.0才能将模板视为选项。如果您选择1.1或更低,模板将不会显示在选项列表中。
UPDATE(2018年2月23日)
微软已经提供了一些新的模板,为使用ASP.NET 2.0的核心应用。你可以找到更多关于他们的细节here。新的Angular template包括对Angular CLI的支持。所以,如果你熟悉CLI,那么这应该会更像家庭感受。这意味着您可以通过ng g
命令来使用此新模板生成代码。 SSR仍然是模板的一部分,虽然你必须做一些编码才能使它工作,而不是一个大问题。
您应该使用Typescript项目类型,如果您使用webpack,请禁用嵌入式visual studio类型的脚本编译。
然后,您必须通过“ng new”命令将整个角度cli生成的目录复制到打字稿项目的根目录。
现在你有智能感知和你需要发展的一切。 我个人更喜欢在powershell standalone windows应用程序中使用cli,但包管理器控制台与Powerhell完全相同,因此它取决于您。
在vs 2017中运行角度cli脚本绝对有可能。因此运行该项目非常简单。 但是,visual studio仍然没有运行该项目。你只是从视觉工作室开始。我知道这样做的
一种方法是添加脚本命令你package.json
例如:其实这些脚本将默认添加时,由角生成的项目
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}
CLI。
然后调用该脚本就像从Node.js Interactive窗口输入.npm [ProjectName] run-script build
或.npm [ProjectName] run-script start
运行该项目一样简单。
是的,您可以在Visual Studio 2017中运行Angular CLI生成的项目。但它需要包含在Asp.Net Web应用程序中,该应用程序将用于Angular应用程序。您可以使用以下步骤:
创建VS项目(例如“AngularApp”)。选择“Asp.Net核心Web应用程序”和“空白”模板。
-
将以下内容添加到.csproj文件中的< PropertyGroup>中。这样可以防止VS转录你的Typescript。 (我们将使用angular-cli)。
<TypeScriptCompileBlocked> true </TypeScriptCompileBlocked>
-
开启在父文件夹到AngularApp一个命令提示,并使用角-CLI应用程式。
ng new AngularApp
编辑.angular-cli.json变 “OUTDIR”,从 “DIST” 到 “wwwroot的”。这是网络应用期望的地方。
-
编辑startup.cs并替换“app.Run ...”。方法有:
app.UseDefaultFiles(); app.UseStaticFiles();
在任务运行资源管理器,自定义生成任务(NG版本)绑定到“构建后”事件。
构建并运行您的应用程序。
我无法通过任务运行程序获取ng build来运行(使用Gulp),但是如果你把它作为一个Post Build事件放在项目属性中,它就可以工作。唯一的问题是让它在更改的文件上运行,而不是需要构建。 –
我在Task Runner中运行“ng build”时没有问题。但是我在VS中调试项目的Typescript代码时遇到了问题。因此我将代码迁移到使用DotNet Angular模板。你可以看到我在这里使用的步骤:https://stackoverflow.com/questions/46665314/migrating-an-existing-angular4-cli-to-net-core-2-angular-template-project/47256341#47256341 –
看起来Steve Sanderson正在将CLI集成到DotNet Angular模板中。 Add new Angular CLI-based template
看看这个回购Angular-CSharp
这从回购中间件激发我没有尽头。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.DefaultPage = "/dist/index.html";
spa.Options.SourcePath = "ClientApp";
/*
// If you want to enable server-side rendering (SSR),
// [1] In AngularSpa.csproj, change the <BuildServerSideRenderer> property
// value to 'true', so that the SSR bundle is built during publish
// [2] Uncomment this code block
spa.UseSpaPrerendering(options =>
{
options.BootModulePath = $"{spa.Options.SourcePath}/dist-server/main.bundle.js";
options.BootModuleBuilder = env.IsDevelopment() ? new AngularCliBuilder(npmScript: "build:ssr") : null;
options.ExcludeUrls = new[] { "/sockjs-node" };
});
*/
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
}
伟大的工作史蒂夫!希望它很快就会准备好。
更新:看起来像有可用的预览: Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0-preview1-final
新模板非常好。它工作得很好,只要你只需要一个SPA。为多个SPA配置(或者在Angular的情况下,具有多个本地化编译的单个SPA)被认为是可能的,但目前还没有文档。我正在研究它,但目前为止没有运气...... – asgallant
如果你想安装,你可以在NuGet包管理器使用Install-Package Angular4 -Version 1.1.0
,并按照下列步骤操作:
Angular 4
*********
Prerequisites
`````````````
1. Download and Install Node js
2. Install Visual studio 2015 update 3 or above
3. Download and Install TypeScript 2.6.1 for Visual Studio 2015 (https://www.typescriptlang.org/#download-links)
Follow the steps to install package.
````````````````````````````````````
1. Create an new project with empty template and include dependencies for MVC and WebApi to the project
2. Install the package using command 'Install-Package Angular4 -Version 1.1.0'
Follow the steps after package installation
```````````````````````````````````````````
1. Open Node.js Command Prompt
2. Navigate to project location(use commands such as pushd,cd etc)
3. Run the command 'npm install'
它可以帮助你在Visual Studio 2017/2015上创建一个Angular4项目。
任何博客可用于内置角模板 - Visual Studio 2017 15.3? – k11k2
有一点关于[Core 2.0](https://blogs.msdn.microsoft.com/webdev/2017/08/14/announcing-asp-net-core-2-0/)公告中的模板,但没有详细说明。如果我遇到任何问题,我会在这里发布。 –
是的,刚刚实施了poc :)。我也将继续发帖。 – k11k2