使用最新的angular-cli,我创建了新的项目,一切正常。接下来,我尝试将它集成到Laravel 5.3中。我有这个项目与systemjs一起工作,但我想切换到webpack并利用angular-cli。Angular 2 + angular-cli + Laravel 5.3
问题是在angular-cli.json中,我无法指定该索引是index.php
,它只接受HTML。
基本上,我无法使用此设置启动Angular应用程序。
我该如何克服这个问题?
使用最新的angular-cli,我创建了新的项目,一切正常。接下来,我尝试将它集成到Laravel 5.3中。我有这个项目与systemjs一起工作,但我想切换到webpack并利用angular-cli。Angular 2 + angular-cli + Laravel 5.3
问题是在angular-cli.json中,我无法指定该索引是index.php
,它只接受HTML。
基本上,我无法使用此设置启动Angular应用程序。
我该如何克服这个问题?
最后,我分离了Laravel和Angular 2,正如Cristian Sepulveda在评论中写道的。无论如何,这是推荐的方法。
我使API与Laravel并与角2
我怎样才能使API在Laravel使用它? – huykon225
我有同样的问题,我发现这是related issue in their GitHub issues:
输出文件夹将始终被完全取代。您可以使用公共/文件夹来让您的index.php文件复制到您的输出文件夹,或将应用程序输出到单独的文件夹并自行复制文件。
这是设计,不会改变。这是一个生成输出文件夹,不是一个部署文件夹。你应该分开这两个步骤。
所以,你不能真正达到你想要的,但这是我发现的唯一解决方法。
在我的情况下,我服务从拉拉维尔角应用程序。我仍然使用webpack来构建我的资产,但有一个吞噬任务,它将角度index.html复制为laravel应用程序所服务的index.blade.php。 我也使用gulp将构建的文件从/ dist复制到/ public
我只为我找到了一个解决方案。
ng build --prod
gulp copy
(在这里你可以检查,如果旧的生成文件时存在删除)gulp inject
- 这可以在CI中使用并使用自动化工具完成。结果我们有inline.js和三个*。**。bundle.js文件被注入。在相同的主布局中,我已经静态添加<base href="/example">
(您可以使用Laravel路径中的任何根路径定义)以及从此路径加载的模板文件(在我的示例中为'example.blade.php')添加角2根元素<st-example>Loading...</st-example>
- 通过这个设置,你有根Laravel布局,其内部需要角2根URL href并从构建注入脚本文件。而你当前路由的模板文件里面有根元素(它通过简单的刀片('content')包含在主要布局中)。
P.S.你也必须注意到,如果你在角2中使用了一些http请求,在将它集成到Laravel项目之后,这将为每个请求添加csrf保护中间件...并且如果在以前工作的请求中有一些新错误, 。
由于angular-cli不允许指定index.php
,因此,只需指定index.html
然后在那里... 并在Laravel路由中添加适当的路由。像这样的,例如:
Route::any('{path?}', function() {
return File::get(public_path() . '/index.html');
})->where("path", ".+");
顺便说一下,它只是对任何未知的路线陷阱...但我认为你拿个主意。
我与angula2,角CLI和laravel 5.3工作使用它,但我让他们分开,我建立与laravel的API,并与angular2消耗它它运作良好,为什么你不使用相同的方法? –
@CristianSepulveda谢谢你的输入(y) –
@CristianSepulveda可以请你提供任何网址演示为strutured你正在使用,我也希望这个,但与laravel想安装角4 – sunil