2016-12-15 3 views
1

У нас есть высокомодульное приложение rails5, которое разделено на рельсовых двигателях над серверными репозиториями и интегрировано в рубиновые камни.Ember Двигатели внутри Rails Двигатели через ember-cli-rails

Теперь мы хотим ввести EmberJS, используя ember-cli-rails. Основное приложение рельсов содержит основное приложение ember в каталоге frontend, в то время как каждый из двигателей рельсов содержит двигатель ember (через ember-engine) в каталоге frontend.

Как смонтировать двигатели модулей двигателя в основной двигатель?

ответ

0

Из-за того, что я не нашел другое решения, до сих пор, я создал инициализатор, который Symlinks Тлеющего двигателя каталогов всех рельсы двигателей в node_modules потребляющего Ember двигателя в приложении потребляющих рельсов:

# Get the node_modules dir 
nm_dir = Rails.root.join('frontend', 'node_modules') 

# Delete existing symlinks 
Dir.new(nm_dir.to_s).each { |entry| FileUtils.rm_rf(entry) if entry =~ /^.+\-frontend$/ } 

# MODULES contains an array of the rails engine gem names 
MODULES.each do |module_name| 
    # Each module has a Manifest class, load that 
    manifest = load_manifest(module_name) 

    # Get the path to the frontend dir of the rails engine 
    source = Pathname.new(manifest.method(:setup).source_location[0].split('/lib/')[0]).join('frontend').to_s 

    # Symlink destination 
    destination = nm_dir.join("#{module_name}-frontend").to_s 

    # Symlink it 
    FileUtils.symlink source, destination, force: true 
end 

Этот подход, вероятно, не очень чист, но, похоже, он работает.

+0

Между тем я обнаружил «npm link» и перестроил этот фрагмент выше, чтобы использовать ссылку npm, а затем создавал символические ссылки вручную. https://docs.npmjs.com/cli/link – phortx

Смежные вопросы