2017-07-14 37 views
0

我對所有js-shenanigans都相當陌生,以前只是簡單地下載我的js文件(外部庫),一切正常。現在我切換到通過紗線安裝js-libraries。不管,如果我添加或自/至.gitignore刪除/node_modules,我總是在cap production deploy在capistrano和紗線資產中部署rails 5.x應用程序的正確方法是什麼?

Tasks: TOP => deploy:assets:precompile 
(See full trace by running task with --trace) 
The deploy has failed with an error: Exception while executing on host 92.53.97.113: rake exit status: 1 
rake stdout: rake aborted! 
Sprockets::FileNotFound: couldn't find file 'jquery' with type 'application/javascript' 
Checked in these paths: 

收到此錯誤,如果node_modules添加到.gitignore我能理解的錯誤 - 因爲我的JS-文件物理此目錄中我忽略它,這是合理的,即,即無法找到jquery。但是如果我從.gitignore中刪除node_modules,錯誤仍然存​​在。

我嘗試添加capistrano-yarn我Gemfile中,添加了這個代碼片段到我的deploy.rbpicked from this so question):

set :nvm_type, :user # or :system, depends on your nvm setup 
set :nvm_node, 'v7.10.0' 
set :nvm_map_bins, %w{node npm yarn} 

set :yarn_target_path, -> { release_path.join('client') } # 
set :yarn_flags, '--production --silent --no-progress' # default 
set :yarn_roles, :all          # default 
set :yarn_env_variables, {} 

但它在黑暗中更採摘,因爲我真的不知道我是什麼這樣做。

我無法找到任何有關如何部署Rails應用程序,其中資產由紗管理的任何適當的教程。有什麼建議嗎? 有人可以解釋一下邏輯,我的產品將從哪裏獲取資產?從node_modules文件夾?如果每個人都建議將它添加到.gitignore - 那麼從哪裏呢?

編輯: 也許值得注意的是,這個應用程序最初是一個4.x的Rails應用程序,後來更新到Rails 5.1.2。

而且我application.js看起來是這樣的:

//= require jquery 
//= require rails-ujs 


//= require_tree ../../../vendor/assets/javascripts/front/first/. 

//= require front/second/jquery.bxslider 

//= require inputmask/dist/jquery.inputmask.bundle 
//= require inputmask/dist/inputmask/phone-codes/phone 
//= require inputmask/dist/inputmask/phone-codes/phone-be 
//= require inputmask/dist/inputmask/phone-codes/phone-ru 

//= require front/second/jquery.masonry.min 

//= require front/second/js-url.min 

//= require_tree ../../../vendor/assets/javascripts/front/third/. 


//= require_self 
//= require_tree ../../../app/assets/javascripts/front/. 
//= require turbolinks 

一切正常,在開發模式。

回答

0

終於明白了。我不得不運行下面的代碼:

bundle config --delete bin 
./bin/rails app:update:bin # or rails app:update:bin 

這幾乎在webpacker描述的最底部here

相關問題