有谁知道如何将 yeoman deploy 与
不使用 php 前端的 php 框架框架(可能是 laravel)
作为外部域?
我找到了这个生成器-laravel
我想知道您对此案的意见或暗示。谢谢
有谁知道如何将 yeoman deploy 与
不使用 php 前端的 php 框架框架(可能是 laravel)
作为外部域?
我找到了这个生成器-laravel
我想知道您对此案的意见或暗示。谢谢
我通过composer安装了“yeo webapp”和Laravel 4。然后我手动将 webapp www 文件夹的内容集成到 Laravel 的结构中。(我现在想知道是否有一种自动化的、可重复的方式来做到这一点,因为它感觉有点单向,但我认为所有 Bower 包仍然是可更新的。我想因为 Yeoman 是一个生成器,所以它是单向的.)。
这些文件从 webapp/www 移动到 Laravel 根文件夹:
.bowerrc [modified below]
.jshint
bower.json
Gruntfile.js [modified below]
package.json
webapp/www/dist 的 Grunt 构建的内容等价于 Laravel/public 文件夹,因此我们需要一个等价于 webapp/www/app 中的源文件。为此,我创建了一个 Laravel/public-src 文件夹。我修改了构建以从这个 src 文件夹中读取并内置到 Laravel/public 文件夹中。public-src 文件夹包含 webapp 前端源和 Laravel 入口点(index.php、.htaccess)的合并。
注意。构建时 Laravel/public 文件夹将被完全销毁!所以在运行 grunt 之前请注意所有未提交的文件。确保您之前的所有静态资源都已移至 src 文件夹。
.bowerrc 变为:
{
"directory": "public-src/bower_components"
}
Gruntfile 的变化是:
grunt.initConfig({
// configurable paths
yeoman: {
app: 'public-src',
dist: 'public'
},
:
所以这应该允许你将你的 SASS、JS 等构建到 Laravel 公用文件夹中。但是除了静态 HTML 站点之外,这并没有多大用处,你显然不是在构建它,否则我们不会为 Laravel 烦恼。所以我们需要将前端构建的一部分发布到 Laravel 视图子文件夹中。
这是一个简化版本,它只使用 something-view.php 的命名约定来处理所有文件,但我假设您的 Laravel 应用程序将使用主模板(页眉/页脚)结构,因此前端构建应该仅发布外部视图,而不是所有子视图(页面主体或模块)。
home-view.php 这里是 webapp HTML 的 php 化版本,带有您需要的任何 PHP 占位符。
将此构建后发布到 Laravel 视图并支持 PHP 文件而不是 HTML 的 Gruntfile 更改是:
'bower-install': {
app: {
html: '<%= yeoman.app %>/home-view.php',
ignorePath: '<%= yeoman.app %>/'
}
},
...
useminPrepare: {
options: {
dest: '<%= yeoman.dist %>'
},
html: '<%= yeoman.app %>/*-view.php'
},
usemin: {
options: {
assetsDirs: ['<%= yeoman.dist %>']
},
html: ['<%= yeoman.dist %>/{,*/}*-view.php'],
css: ['<%= yeoman.dist %>/styles/{,*/}*.css']
},
...
htmlmin: {
dist: {
files: [{
expand: true,
cwd: '<%= yeoman.app %>',
src: '*-view.php',
dest: '<%= yeoman.dist %>'
}]
}
...
// Put files not handled in other tasks here
copy: {
...
// move the main view(s) into Laravel
laravel: {
files: [{
expand: true,
dot: true,
cwd: '<%= yeoman.dist %>',
dest: 'app/views',
src: '*-view.php'
},
{
expand: true,
dot: true,
cwd: '<%= yeoman.app %>',
dest: '<%= yeoman.dist %>',
src: 'index.php'
}]
}
},
...
grunt.registerTask('build', [
...
'usemin',
'copy:laravel'
]);
我还向 Laravel/.gitignore 添加了一些构建输出排除项
.tmp
.sass-cache
public/bower_components
public/scripts
public/styles
public-src/bower_components
(尽管我已经阅读过,建议保留已安装软件包的缓存副本,即 public-src/bower_components)。
差不多就是这样,如果我错过了什么,请道歉,但还有更多需要调整的地方。例如,我可能会删除通配符 PHP 发布,支持仅发布页眉/页脚主模板视图,如前所述。其余的内部/正文视图可以来自 Laravel/views 文件夹,不需要为前端目的而构建。
我确实打算分叉我的代码库,删除专有代码并生成一个我可以共享的工作集成的干净基础。在那之前,这就是我所能提供的。我希望它有所帮助。