2016-12-15 4 views
1

우리는 서버 리포지토리를 통해 레일 엔진으로 분할되고 루비 보석으로 통합 된 높은 모듈 형 레일 5 앱을 보유하고 있습니다.Ember 엔진 내부 레일 엔진 Engle-cli-rails를 통한 엔진

이제는 ember-cli-rails을 사용하여 EmberJS를 소개하고자합니다. 메인 레일 애플리케이션은 frontend 디렉토리에 기본 엠버 애플리케이션을 포함하고 각 레일 엔진은 frontend 디렉토리에 엠버 엔진 (ember-engine 경유)을 포함합니다.

모듈의 엠버 엔진을 메인 엠버 엔진에 마운트하는 방법은 무엇입니까? 지금까지, 나는 소비 레일 응용 프로그램에서 소비 엠버 엔진의 node_modules에 모든 레일 엔진의 엠버 엔진 디렉토리를 심볼릭 링크 이니셜 라이저를 만들었습니다 다른 해결책을 발견 한 사실 때문에

답변

0

:

# 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