所以,我一直在期待Yeoman,它已经出现了一个星期左右。但是在成功安装之后,我对工作流程以及后端脚本(API)的实现感到困惑。
情景1
所以让我说我不需要所有那些闪亮的BBB / Ember / Angular的东西,并使用Yeoman只是为了jQuery / H5BP / Modernizr支持Codeigniter或Sinatra / Rails。由于yeoman server
本身不支持PHP(我没有尝试过Sinatra / Rails),我认为工作流程是:
yeoman build
然后使用构建的dist
文件夹作为开发后端的基础(并可能将dist
文件夹复制到另一个文件夹以进行后端实现(让我们说public
文件夹)dist
文件夹并将其复制到public
。所以一直...... 但是使用该工作流程,这意味着目录结构将类似于
cool-app/
--app/
--yeoman development stuff
--test/
--yeoman development stuff
--dist/
--yeoman built stuff
.dotfiles
package.json
Gruntfile.js
这很好,但与CodeIgniter / Rails目录结构有很大不同。更不用说有名称差异了(这可以在Yeoman中配置吗?),所以很难想象一个好的工作流程一次开发前端和后端,除了使用构建的结果作为后端的基础。
场景2
BBB /灰烬/角。坦率地说,我一直在测试这些东西,所以欢迎使用后端代码实现任何提示!虽然我知道,yeoman可以为app文件夹中的那些框架生成必要的文件,所以我想,第一个场景的解决方案将有点解决方案2的问题
非常感谢!
答案 0 :(得分:37)
我喜欢使用这种结构:
rails-app/
--app/
--views/
--js/
--app/
--test/
--Gruntfile.js
--public
以下是我如何设置它:
然后编辑Gruntfile.js将“output:'dist'”改为“output:'../../../ public'”
之后,“yeoman build”或“yeoman build:dist”将输出到Rails / public文件夹。
在开发期间,您仍然可以使用“yeoman服务器”在开发模式下运行yeoman,因此您所做的任何更改都将自动在浏览器中显示。
Yeoman很棒!
答案 1 :(得分:3)
Sanford的答案当然也适用于Sinatra,但是可以使用稍微不同的解决方案,这样您就不必发布“yeoman build”来在开发模式下运行。
在Sinatra中,公用文件夹是可配置的,因此您可以使用如下所示的配置块:
configure do
set :public_folder, ENV['RACK_ENV'] == 'production' ? 'dist' : 'app'
end
然后使用这样的路线:
get '/' do
send_file File.join(settings.public_folder, 'index.html')
end
这假设“yeoman init”在Sinatra应用程序的根文件夹中运行。
您所做的就是确保在部署到生产环境之前运行“yeoman build”,并且将使用优化后的内容。