Skip to content

Commit 8e16728

Browse files
committed
Copy react assets out of react-source before building the gem
1 parent 6f7988b commit 8e16728

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ Gemfile.lock
44
test/dummy/tmp
55
gemfiles/*.lock
66
*.swp
7+
/lib/assets/react-source/*
8+
/lib/assets/javascripts/JSXTransformer.js

Rakefile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,27 @@ end
66

77
Bundler::GemHelper.install_tasks
88

9+
require 'pathname'
10+
require 'react/source'
11+
12+
namespace :react do
13+
task :copy_assets do
14+
assets_path = Pathname.new(__dir__).join('lib/assets')
15+
copy_react_asset('JSXTransformer.js', assets_path.join('javascripts/JSXTransformer.js'))
16+
copy_react_asset('react.js', assets_path.join('react-source/development/react.js'))
17+
copy_react_asset('react.min.js', assets_path.join('react-source/production/react.js'))
18+
copy_react_asset('react-with-addons.js', assets_path.join('react-source/development-with-addons/react.js'))
19+
copy_react_asset('react-with-addons.min.js', assets_path.join('react-source/production-with-addons/react.js'))
20+
end
21+
22+
def copy_react_asset(source, destination)
23+
FileUtils.mkdir_p(destination.dirname.to_s)
24+
FileUtils.cp(::React::Source.bundled_path_for(source), destination.to_s)
25+
end
26+
end
27+
28+
Rake::Task[:build].enhance(%w(react:copy_assets))
29+
930
require 'appraisal'
1031
require 'rake/testtask'
1132

lib/react/rails/railtie.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@ class Railtie < ::Rails::Railtie
3333
# contain console logging for invariants and logging to help catch
3434
# common mistakes. These are all stripped out in the production build.
3535

36-
directory = (app.config.react.variant || :production).to_s
37-
directory += 'with-addons' if app.config.react.addons
38-
app.assets.prepend_path ::React::Source.bundled_path_for(directory)
39-
app.assets.prepend_path ::React::Source.bundled_path_for('') # JSXTransformer.js
36+
directory = app.config.react.variant == :production ? 'production' : 'development'
37+
directory += '-with-addons' if app.config.react.addons
38+
39+
path = Pathname.new('../../../assets/react-source/').join(directory).expand_path(__FILE__).to_s
40+
app.assets.append_path(path)
4041
end
4142

4243

react-rails.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ Gem::Specification.new do |s|
2222
s.add_development_dependency 'poltergeist', '>= 0.3.3'
2323
s.add_development_dependency 'test-unit', '~> 2.5'
2424
s.add_development_dependency 'turbolinks', '>= 2.0.0'
25+
# If you change this, make sure to update VERSIONS.md:
26+
s.add_development_dependency 'react-source', '~> 0.13'
2527

2628

2729
s.add_dependency 'coffee-script-source', '~>1.8'
2830
s.add_dependency 'connection_pool'
2931
s.add_dependency 'execjs'
3032
s.add_dependency 'rails', '>= 3.1'
31-
# If you change this, make sure to update VERSIONS.md:
32-
s.add_dependency 'react-source', '~> 0.13'
3333
s.add_dependency 'tilt'
3434

3535
s.files = Dir[

0 commit comments

Comments
 (0)