32

所以,我一直在期待Yeoman,现在它已经发布了一周左右。但是在成功安装它之后,我对工作流程和后端脚本(API)的实现感到困惑。

方案 1

因此,假设我不需要所有那些闪亮的 BBB/Ember/Angular 的东西,而仅将 Yeoman 用于由 Codeigniter 或 Sinatra/Rails 支持的 jQuery/H5BP/Modernizr。由于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 的问题

非常感谢!

4

2 回答 2

37

我喜欢使用这种结构:

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

这是我的设置方式:

  • rails new rails-app
  • cd rails-app/app/views
  • mkdir js
  • 光盘
  • 约曼初始化余烬

然后编辑 Gruntfile.js 将“输出:'dist'”更改为“输出:'../../../public'”

之后,“yeoman build”或“yeoman build:dist”将输出到 Rails /public 文件夹。

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

叶曼好样的!

于 2012-09-25T13:12:29.210 回答
3

当然,桑福德的回答也适用于 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”,并且将使用 yeoman 优化的内容。

于 2012-12-29T09:02:27.457 回答