我尝试通过Rails & Ember-cli
将VPS
个应用程序部署到Capistrano
。我已使用Ember-cli
gem将Rails
集成到ember-cli-rails
中。问题发生在Capistrano
想要assets:precompile
时。抛出EmberCLI Rails requires your Ember app to have an addon.
之类的错误在这种情况下,我可以在本地计算机和assets:precompile
目录中的服务器上运行released
而没有任何问题。在服务器上我安装了`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 '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"
任何帮助将不胜感激。
答案 0 :(得分:0)
我刚刚通过向deploy.rb
文件添加一些任务来解决此问题。
答案 1 :(得分:0)
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'