Rails, ember-cli-rails gem

Rails, ember-cli-rails gem

我试图通过 CapistranoRails & Ember-cli 应用程序部署到 VPS。我已经使用 ember-cli-rails gem 将 Ember-cli 整合到 Rails 中。当 Capistrano 想要执行 assets:precompile 时,就会出现问题。抛出类似 EmberCLI Rails requires your Ember app to have an addon. 的错误 在这种情况下,我可以在我的本地计算机和 released 目录中的服务器上 运行 assets:precompile 没有任何问题。在服务器上我安装了`Nodejs 和 NPM。

deploy.rb

lock '3.1.0'
set :application, 'APPLICATION NAME'
set :repo_url, 'GIT ADDRESS'
set :deploy_to, 'SERVER SIDE ADDRESS'
set :linked_files, %w{config/database.yml}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}
namespace :deploy do
 desc 'Restart application'
  task :restart do
  on roles(:app), in: :sequence, wait: 5 do      
 end
end
 after :publishing, 'deploy:restart'
 after :finishing, 'deploy:cleanup'
 after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
  end
end
end

Capfile

require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/bundler'
require 'capistrano/rails'
require 'capistrano/rvm'
set :rvm_type, :user
set :rvm_ruby_version, '2.2.0'
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }

相关 Gem

gem 'rails', '4.2.0'
gem 'capistrano', '~> 3.1.0'
gem 'capistrano-bundler', '~> 1.1.2'
gem 'capistrano-rails', '~> 1.1.1'
gem 'capistrano-rvm', github: "capistrano/rvm"

如有任何帮助,我们将不胜感激。

我刚刚通过将一些任务添加到我的 deploy.rb 文件中解决了这个问题。

desc "Build Ember addon"
  task :build_ember_addon do
   on roles(:app) do
  execute "cd #{release_path}/frontend  && /home/$USER/.nvm/versions/node/v0.12.2/bin/npm install --save-dev ember-cli-rails-addon@0.0.11"
end
end

desc "Intall npm"
 task :npm_install do
  on roles(:app) do
  execute "cd #{release_path}/frontend && /home/$USER/.nvm/versions/node/v0.12.2/bin/npm install"
end
end

desc "bower install"
 task :bower_install do
  on roles(:app) do
  execute "cd #{release_path}/frontend && /home/$USER/.nvm/versions/node/v0.12.2/bin/bower install --config.interactive=false"
end
end

before 'deploy:updated', 'deploy:build_ember_addon'
before 'deploy:updated', 'deploy:npm_install'
before 'deploy:updated', 'deploy:bower_install'