Yeoman 工作流与后端脚本集成

32

我一直在期待使用Yeoman,现在它已经发布了大约一个星期。但是,在成功安装后,我对工作流程和后端脚本(API)的实现感到困惑。

场景1

假设我不需要所有这些闪亮的BBB / Ember / Angular东西,只需使用Yeoman来支持jQuery / H5BP / Modernizr并搭配Codeigniter或Sinatra / Rails。由于yeoman server不原生支持PHP(我还没有尝试过Sinatra / Rails),我想工作流程应该是:

  • 使用Yeoman进行前端开发
  • 完成后,执行 yeoman build ,然后使用构建的 dist 文件夹作为开发后端的基础(并且可能将 dist 文件夹复制到另一个文件夹中进行后端实现(比如说 public 文件夹))
  • 如果我需要更改CSS/JS,再次使用Yeoman,构建并将 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/Ember/Angular。坦白说,我只是在测试这些东西,因此欢迎任何有关与后端代码实现的提示!尽管据我所知,yeoman可以在app文件夹中生成这些框架所需的文件,因此我想,第一个场景的解决方案会在一定程度上解决场景2的问题。

非常感谢!

2个回答

37

我喜欢使用这种结构:

rails-app/
--app/
  --views/
    --js/
      --app/
      --test/
      --Gruntfile.js
--public

这是我设置的步骤:

  • rails new rails-app
  • cd rails-app/app/views
  • mkdir js
  • cd js
  • yeoman init ember

然后编辑Gruntfile.js将"output: 'dist'"更改为"output: '../../../public'"

此后,"yeoman build"或"yeoman build:dist"将输出到Rails /public文件夹。

在开发期间,您仍可以使用"yeoman server"以开发模式运行yeoman,因此您所做的任何更改都将自动在浏览器中可见。

Yeoman很棒!


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

假定在Sinatra应用程序的根文件夹中运行了"yeoman init"。 然后,您只需确保在部署到生产环境之前运行了"yeoman build",就会使用经过yeoman优化的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接