webpacker 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +17 -9
- data/CHANGELOG.md +4 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +55 -64
- data/README.md +10 -14
- data/docs/assets.md +20 -10
- data/docs/css.md +54 -1
- data/docs/deployment.md +16 -0
- data/docs/engines.md +8 -0
- data/docs/es6.md +5 -4
- data/docs/troubleshooting.md +9 -0
- data/docs/v4-upgrade.md +12 -2
- data/docs/webpack.md +3 -4
- data/gemfiles/Gemfile-rails-edge +1 -2
- data/gemfiles/Gemfile-rails.4.2.x +1 -2
- data/gemfiles/Gemfile-rails.5.0.x +1 -2
- data/gemfiles/Gemfile-rails.5.1.x +1 -2
- data/gemfiles/Gemfile-rails.5.2.x +1 -2
- data/lib/install/config/babel.config.js +3 -1
- data/lib/install/config/webpacker.yml +1 -1
- data/lib/install/elm.rb +2 -2
- data/lib/install/examples/react/babel.config.js +1 -0
- data/lib/install/examples/vue/hello_vue.js +2 -3
- data/lib/tasks/webpacker/compile.rake +8 -5
- data/lib/webpacker/compiler.rb +8 -4
- data/lib/webpacker/dev_server_runner.rb +6 -0
- data/lib/webpacker/helper.rb +1 -1
- data/lib/webpacker/version.rb +1 -1
- data/lib/webpacker/webpack_runner.rb +6 -0
- data/package.json +26 -24
- data/package/environments/__tests__/base.js +2 -2
- data/package/environments/base.js +2 -2
- data/package/rules/node_modules.js +1 -1
- data/webpacker.gemspec +2 -1
- data/yarn.lock +1335 -1103
- metadata +29 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca4c04cd7d94f5b71c351ccc33131c7b3674e5fca8dbfd96e58917cc28638490
|
4
|
+
data.tar.gz: 8a2924f440cee006085a8b6131de74bc422b99be5c2bda35b98d976b3f4daba6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26777525488474c374c6d002d81f24b57e24045f1386f75f5dd937e6da71baa65d5008357cd7e3f1b1ede5dbaf552f03c2e2718c2428a57daac3c744a8326ab1
|
7
|
+
data.tar.gz: 8baffc48b354871019ec994ceab2c5595d83aadebcfa66e130c3d8e8c97edb6de8c9f3268aadbb528582cef6a0867b72a97d6144ae5e047e65777057c770eb50
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,12 +1,19 @@
|
|
1
|
-
sudo: false
|
2
1
|
language: ruby
|
2
|
+
bundler_args: --jobs 3 --retry 3
|
3
|
+
dist: xenial
|
3
4
|
before_install:
|
4
|
-
- gem update
|
5
|
+
- gem install rubygems-update && update_rubygems
|
6
|
+
# Rails 4.2 doesn't support bundler 2.0, so we need to lock bundler to
|
7
|
+
# v1.17.3. This is just for Ruby 2.5 which ships with bundler 2.x on Travis
|
8
|
+
# CI while Ruby 2.6 does not.
|
9
|
+
# https://github.com/travis-ci/travis-rubies/issues/57#issuecomment-458981237
|
10
|
+
- yes | rvm @global do gem uninstall bundler --all
|
11
|
+
- yes | rvm @global do gem install bundler -v 1.17.3 || true
|
5
12
|
rvm:
|
6
13
|
- 2.3.8
|
7
|
-
- 2.4.
|
8
|
-
- 2.5.
|
9
|
-
- 2.6.
|
14
|
+
- 2.4.6
|
15
|
+
- 2.5.5
|
16
|
+
- 2.6.2
|
10
17
|
- ruby-head
|
11
18
|
gemfile:
|
12
19
|
- gemfiles/Gemfile-rails.4.2.x
|
@@ -22,7 +29,7 @@ cache:
|
|
22
29
|
|
23
30
|
install:
|
24
31
|
- bundle install
|
25
|
-
- nvm install
|
32
|
+
- nvm install 10
|
26
33
|
- node -v
|
27
34
|
- npm i -g yarn
|
28
35
|
- yarn
|
@@ -33,13 +40,14 @@ script:
|
|
33
40
|
- bundle exec rake test
|
34
41
|
matrix:
|
35
42
|
allow_failures:
|
36
|
-
|
43
|
+
- gemfile: gemfiles/Gemfile-rails-edge
|
44
|
+
- rvm: ruby-head
|
37
45
|
exclude:
|
38
46
|
- rvm: 2.3.8
|
39
47
|
gemfile: gemfiles/Gemfile-rails-edge
|
40
|
-
- rvm: 2.4.
|
48
|
+
- rvm: 2.4.6
|
41
49
|
gemfile: gemfiles/Gemfile-rails-edge
|
42
|
-
- rvm: 2.5.
|
50
|
+
- rvm: 2.5.5
|
43
51
|
gemfile: gemfiles/Gemfile-rails-edge
|
44
52
|
- rvm: ruby-head
|
45
53
|
gemfile: gemfiles/Gemfile-rails.4.2.x
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
**Please note that Webpacker 3.1.0 and 3.1.1 have some serious bugs so please consider using either 3.0.2 or 3.2.0**
|
2
2
|
|
3
|
+
## [[4.0.3]](https://github.com/rails/webpacker/compare/v4.0.2...v4.0.3) - 2019-05-28
|
4
|
+
|
5
|
+
Please see the diff
|
6
|
+
|
3
7
|
## [4.0.2] - 2019-03-06
|
4
8
|
|
5
9
|
- Bump the version on npm
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,21 +1,7 @@
|
|
1
|
-
GIT
|
2
|
-
remote: https://github.com/rubocop-hq/rubocop.git
|
3
|
-
revision: dc69686abf10d9f38ed3a39037fab76ae8874138
|
4
|
-
specs:
|
5
|
-
rubocop (0.65.0)
|
6
|
-
jaro_winkler (~> 1.5.1)
|
7
|
-
parallel (~> 1.10)
|
8
|
-
parser (>= 2.5, != 2.5.1.1)
|
9
|
-
powerpack (~> 0.1)
|
10
|
-
psych (>= 3.1.0)
|
11
|
-
rainbow (>= 2.2.2, < 4.0)
|
12
|
-
ruby-progressbar (~> 1.7)
|
13
|
-
unicode-display_width (~> 1.4.0)
|
14
|
-
|
15
1
|
PATH
|
16
2
|
remote: .
|
17
3
|
specs:
|
18
|
-
webpacker (4.0.
|
4
|
+
webpacker (4.0.3)
|
19
5
|
activesupport (>= 4.2)
|
20
6
|
rack-proxy (>= 0.6.1)
|
21
7
|
railties (>= 4.2)
|
@@ -23,43 +9,43 @@ PATH
|
|
23
9
|
GEM
|
24
10
|
remote: https://rubygems.org/
|
25
11
|
specs:
|
26
|
-
actioncable (5.2.
|
27
|
-
actionpack (= 5.2.
|
12
|
+
actioncable (5.2.3)
|
13
|
+
actionpack (= 5.2.3)
|
28
14
|
nio4r (~> 2.0)
|
29
15
|
websocket-driver (>= 0.6.1)
|
30
|
-
actionmailer (5.2.
|
31
|
-
actionpack (= 5.2.
|
32
|
-
actionview (= 5.2.
|
33
|
-
activejob (= 5.2.
|
16
|
+
actionmailer (5.2.3)
|
17
|
+
actionpack (= 5.2.3)
|
18
|
+
actionview (= 5.2.3)
|
19
|
+
activejob (= 5.2.3)
|
34
20
|
mail (~> 2.5, >= 2.5.4)
|
35
21
|
rails-dom-testing (~> 2.0)
|
36
|
-
actionpack (5.2.
|
37
|
-
actionview (= 5.2.
|
38
|
-
activesupport (= 5.2.
|
22
|
+
actionpack (5.2.3)
|
23
|
+
actionview (= 5.2.3)
|
24
|
+
activesupport (= 5.2.3)
|
39
25
|
rack (~> 2.0)
|
40
26
|
rack-test (>= 0.6.3)
|
41
27
|
rails-dom-testing (~> 2.0)
|
42
28
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
43
|
-
actionview (5.2.
|
44
|
-
activesupport (= 5.2.
|
29
|
+
actionview (5.2.3)
|
30
|
+
activesupport (= 5.2.3)
|
45
31
|
builder (~> 3.1)
|
46
32
|
erubi (~> 1.4)
|
47
33
|
rails-dom-testing (~> 2.0)
|
48
34
|
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
49
|
-
activejob (5.2.
|
50
|
-
activesupport (= 5.2.
|
35
|
+
activejob (5.2.3)
|
36
|
+
activesupport (= 5.2.3)
|
51
37
|
globalid (>= 0.3.6)
|
52
|
-
activemodel (5.2.
|
53
|
-
activesupport (= 5.2.
|
54
|
-
activerecord (5.2.
|
55
|
-
activemodel (= 5.2.
|
56
|
-
activesupport (= 5.2.
|
38
|
+
activemodel (5.2.3)
|
39
|
+
activesupport (= 5.2.3)
|
40
|
+
activerecord (5.2.3)
|
41
|
+
activemodel (= 5.2.3)
|
42
|
+
activesupport (= 5.2.3)
|
57
43
|
arel (>= 9.0)
|
58
|
-
activestorage (5.2.
|
59
|
-
actionpack (= 5.2.
|
60
|
-
activerecord (= 5.2.
|
44
|
+
activestorage (5.2.3)
|
45
|
+
actionpack (= 5.2.3)
|
46
|
+
activerecord (= 5.2.3)
|
61
47
|
marcel (~> 0.3.1)
|
62
|
-
activesupport (5.2.
|
48
|
+
activesupport (5.2.3)
|
63
49
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
64
50
|
i18n (>= 0.7, < 2)
|
65
51
|
minitest (~> 5.1)
|
@@ -67,13 +53,13 @@ GEM
|
|
67
53
|
arel (9.0.0)
|
68
54
|
ast (2.4.0)
|
69
55
|
builder (3.2.3)
|
70
|
-
byebug (11.0.
|
71
|
-
concurrent-ruby (1.1.
|
56
|
+
byebug (11.0.1)
|
57
|
+
concurrent-ruby (1.1.5)
|
72
58
|
crass (1.0.4)
|
73
59
|
erubi (1.8.0)
|
74
60
|
globalid (0.4.2)
|
75
61
|
activesupport (>= 4.2.0)
|
76
|
-
i18n (1.
|
62
|
+
i18n (1.6.0)
|
77
63
|
concurrent-ruby (~> 1.0)
|
78
64
|
jaro_winkler (1.5.2)
|
79
65
|
loofah (2.2.3)
|
@@ -89,45 +75,50 @@ GEM
|
|
89
75
|
mini_portile2 (2.4.0)
|
90
76
|
minitest (5.11.3)
|
91
77
|
nio4r (2.3.1)
|
92
|
-
nokogiri (1.10.
|
78
|
+
nokogiri (1.10.3)
|
93
79
|
mini_portile2 (~> 2.4.0)
|
94
|
-
parallel (1.
|
95
|
-
parser (2.6.
|
80
|
+
parallel (1.17.0)
|
81
|
+
parser (2.6.3.0)
|
96
82
|
ast (~> 2.4.0)
|
97
|
-
|
98
|
-
psych (3.1.0)
|
99
|
-
rack (2.0.6)
|
83
|
+
rack (2.0.7)
|
100
84
|
rack-proxy (0.6.5)
|
101
85
|
rack
|
102
86
|
rack-test (1.1.0)
|
103
87
|
rack (>= 1.0, < 3)
|
104
|
-
rails (5.2.
|
105
|
-
actioncable (= 5.2.
|
106
|
-
actionmailer (= 5.2.
|
107
|
-
actionpack (= 5.2.
|
108
|
-
actionview (= 5.2.
|
109
|
-
activejob (= 5.2.
|
110
|
-
activemodel (= 5.2.
|
111
|
-
activerecord (= 5.2.
|
112
|
-
activestorage (= 5.2.
|
113
|
-
activesupport (= 5.2.
|
88
|
+
rails (5.2.3)
|
89
|
+
actioncable (= 5.2.3)
|
90
|
+
actionmailer (= 5.2.3)
|
91
|
+
actionpack (= 5.2.3)
|
92
|
+
actionview (= 5.2.3)
|
93
|
+
activejob (= 5.2.3)
|
94
|
+
activemodel (= 5.2.3)
|
95
|
+
activerecord (= 5.2.3)
|
96
|
+
activestorage (= 5.2.3)
|
97
|
+
activesupport (= 5.2.3)
|
114
98
|
bundler (>= 1.3.0)
|
115
|
-
railties (= 5.2.
|
99
|
+
railties (= 5.2.3)
|
116
100
|
sprockets-rails (>= 2.0.0)
|
117
101
|
rails-dom-testing (2.0.3)
|
118
102
|
activesupport (>= 4.2.0)
|
119
103
|
nokogiri (>= 1.6)
|
120
104
|
rails-html-sanitizer (1.0.4)
|
121
105
|
loofah (~> 2.2, >= 2.2.2)
|
122
|
-
railties (5.2.
|
123
|
-
actionpack (= 5.2.
|
124
|
-
activesupport (= 5.2.
|
106
|
+
railties (5.2.3)
|
107
|
+
actionpack (= 5.2.3)
|
108
|
+
activesupport (= 5.2.3)
|
125
109
|
method_source
|
126
110
|
rake (>= 0.8.7)
|
127
111
|
thor (>= 0.19.0, < 2.0)
|
128
112
|
rainbow (3.0.0)
|
129
113
|
rake (12.3.2)
|
130
|
-
|
114
|
+
rubocop (0.68.1)
|
115
|
+
jaro_winkler (~> 1.5.1)
|
116
|
+
parallel (~> 1.10)
|
117
|
+
parser (>= 2.5, != 2.5.1.1)
|
118
|
+
rainbow (>= 2.2.2, < 4.0)
|
119
|
+
ruby-progressbar (~> 1.7)
|
120
|
+
unicode-display_width (>= 1.4.0, < 1.6)
|
121
|
+
ruby-progressbar (1.10.1)
|
131
122
|
sprockets (3.7.2)
|
132
123
|
concurrent-ruby (~> 1.0)
|
133
124
|
rack (> 1, < 3)
|
@@ -139,7 +130,7 @@ GEM
|
|
139
130
|
thread_safe (0.3.6)
|
140
131
|
tzinfo (1.2.5)
|
141
132
|
thread_safe (~> 0.1)
|
142
|
-
unicode-display_width (1.
|
133
|
+
unicode-display_width (1.5.0)
|
143
134
|
websocket-driver (0.7.0)
|
144
135
|
websocket-extensions (>= 0.1.0)
|
145
136
|
websocket-extensions (0.1.3)
|
@@ -148,13 +139,13 @@ PLATFORMS
|
|
148
139
|
ruby
|
149
140
|
|
150
141
|
DEPENDENCIES
|
151
|
-
bundler (
|
142
|
+
bundler (>= 1.3.0, < 2.0)
|
152
143
|
byebug
|
153
144
|
minitest (~> 5.0)
|
154
145
|
rack-proxy
|
155
146
|
rails
|
156
147
|
rake (>= 11.1)
|
157
|
-
rubocop
|
148
|
+
rubocop (< 0.69)
|
158
149
|
webpacker!
|
159
150
|
|
160
151
|
BUNDLED WITH
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Webpacker
|
2
2
|
|
3
|
-
](https://travis-ci.org/rails/webpacker)
|
4
4
|
[](https://nodejs.org/en/)
|
5
5
|
[](https://github.com/rails/webpacker)
|
6
6
|
|
@@ -34,7 +34,7 @@ in which case you may not even need the asset pipeline. This is mostly relevant
|
|
34
34
|
- [Vue](#vue)
|
35
35
|
- [Elm](#elm)
|
36
36
|
- [Stimulus](#stimulus)
|
37
|
-
- [
|
37
|
+
- [CoffeeScript](#coffeescript)
|
38
38
|
- [Erb](#erb)
|
39
39
|
- [Paths](#paths)
|
40
40
|
- [Resolved](#resolved)
|
@@ -84,15 +84,11 @@ Or add it to your `Gemfile`:
|
|
84
84
|
|
85
85
|
```ruby
|
86
86
|
# Gemfile
|
87
|
-
gem 'webpacker', '~>
|
87
|
+
gem 'webpacker', '~> 4.x'
|
88
88
|
|
89
89
|
# OR if you prefer to use master
|
90
90
|
gem 'webpacker', git: 'https://github.com/rails/webpacker.git'
|
91
91
|
yarn add https://github.com/rails/webpacker.git
|
92
|
-
|
93
|
-
# OR to try out 4.x pre-release
|
94
|
-
gem 'webpacker', '>= 4.0.x'
|
95
|
-
yarn add @rails/webpacker@next
|
96
92
|
```
|
97
93
|
|
98
94
|
Finally, run the following to install Webpacker:
|
@@ -294,9 +290,9 @@ You can run following commands to upgrade Webpacker to the latest stable version
|
|
294
290
|
bundle update webpacker
|
295
291
|
rails webpacker:binstubs
|
296
292
|
yarn upgrade @rails/webpacker --latest
|
297
|
-
yarn
|
293
|
+
yarn upgrade webpack-dev-server --latest
|
298
294
|
|
299
|
-
# Or to install
|
295
|
+
# Or to install the latest release (including pre-releases)
|
300
296
|
yarn add @rails/webpacker@next
|
301
297
|
```
|
302
298
|
|
@@ -310,7 +306,7 @@ To turn off this option, you will need to change the default setting in `config/
|
|
310
306
|
# config/webpacker.yml
|
311
307
|
development:
|
312
308
|
...
|
313
|
-
# Verifies that
|
309
|
+
# Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
|
314
310
|
check_yarn_integrity: false
|
315
311
|
```
|
316
312
|
|
@@ -335,7 +331,7 @@ new Rails 5.1+ app using `--webpack=react` option:
|
|
335
331
|
rails new myapp --webpack=react
|
336
332
|
```
|
337
333
|
|
338
|
-
(or run `bundle exec rails webpacker:install:react` in
|
334
|
+
(or run `bundle exec rails webpacker:install:react` in an existing Rails app already
|
339
335
|
setup with Webpacker).
|
340
336
|
|
341
337
|
The installer will add all relevant dependencies using Yarn, changes
|
@@ -442,14 +438,14 @@ rails new myapp --webpack=stimulus
|
|
442
438
|
|
443
439
|
Please read [The Stimulus Handbook](https://stimulusjs.org/handbook/introduction) or learn more about its source code at https://github.com/stimulusjs/stimulus
|
444
440
|
|
445
|
-
###
|
441
|
+
### CoffeeScript
|
446
442
|
|
447
|
-
To add [
|
443
|
+
To add [CoffeeScript](http://coffeescript.org/) support,
|
448
444
|
run `bundle exec rails webpacker:install:coffee` on a Rails app already
|
449
445
|
setup with Webpacker.
|
450
446
|
|
451
447
|
An example `hello_coffee.coffee` file will also be added to your project
|
452
|
-
in `app/javascript/packs` so that you can experiment with
|
448
|
+
in `app/javascript/packs` so that you can experiment with CoffeeScript right away.
|
453
449
|
|
454
450
|
### Erb
|
455
451
|
|
data/docs/assets.md
CHANGED
@@ -84,26 +84,36 @@ import 'assets/stylesheets/bar'
|
|
84
84
|
## Link in your Rails views
|
85
85
|
|
86
86
|
You can also link `js/images/styles/fonts` used within your js app in views using
|
87
|
-
`asset_pack_path`
|
87
|
+
`asset_pack_path` and `image_pack_tag` helpers. These helpers are useful in cases where you just want to
|
88
88
|
create a `<link rel="prefetch">` or `<img />` for an asset.
|
89
89
|
|
90
90
|
```yml
|
91
91
|
app/javascript:
|
92
92
|
- packs
|
93
|
-
-
|
94
|
-
- styles
|
95
|
-
- hello_react.css
|
93
|
+
- app.js
|
96
94
|
- images
|
97
95
|
- calendar.png
|
98
96
|
```
|
99
97
|
|
98
|
+
```js
|
99
|
+
// app/javascript/packs/app.js (or any of your packs)
|
100
|
+
|
101
|
+
// import all image files in a folder:
|
102
|
+
require.context('../images', true)
|
103
|
+
```
|
104
|
+
|
100
105
|
```erb
|
101
|
-
|
102
|
-
|
106
|
+
<%# Rails view, for example app/views/layouts/application.html.erb %>
|
107
|
+
|
108
|
+
<img src="<%= asset_pack_path 'media/images/calendar.png' %>" />
|
109
|
+
<% # => <img src="/packs/media/images/calendar-k344a6d59eef8632c9d1.png" /> %>
|
103
110
|
|
104
|
-
|
105
|
-
<% # => <img src="/packs/images/calendar.png" /> %>
|
111
|
+
<%= image_pack_tag 'media/images/calendar.png' %>
|
112
|
+
<% # => <img src="/packs/media/images/calendar-k344a6d59eef8632c9d1.png" /> %>
|
106
113
|
|
107
|
-
|
108
|
-
|
114
|
+
<%# no path resolves to default 'images' folder: %>
|
115
|
+
<%= image_pack_tag 'calendar.png' %>
|
116
|
+
<% # => <img src="/packs/media/images/calendar-k344a6d59eef8632c9d1.png" /> %>
|
109
117
|
```
|
118
|
+
|
119
|
+
Note you need to add a `media/` prefix (not `/media/`) to any subfolder structure you might have in `app/javascript`. See more examples in the [tests](https://github.com/rails/webpacker/blob/0b86cadb5ed921e2c1538382e72a236ec30a5d97/test/helper_test.rb#L37).
|
data/docs/css.md
CHANGED
@@ -32,7 +32,7 @@ const Hello = props => (
|
|
32
32
|
|
33
33
|
## Import scoped styles into your JS app
|
34
34
|
|
35
|
-
Stylesheets end with `.module.*`
|
35
|
+
Stylesheets that end with `.module.*` are treated as [CSS Modules](https://github.com/css-modules/css-modules).
|
36
36
|
|
37
37
|
```sass
|
38
38
|
// app/javascript/hello_react/styles/hello-react.module.sass
|
@@ -60,6 +60,59 @@ const Hello = props => (
|
|
60
60
|
|
61
61
|
**Note:** Declared class is referenced as object property in JavaScript.
|
62
62
|
|
63
|
+
## Import scoped styles into your TypeScript app
|
64
|
+
|
65
|
+
Using CSS modules with a TypeScript application requires a few differences from a JavaScript app. The CSS / Sass files are the same:
|
66
|
+
|
67
|
+
```sass
|
68
|
+
// app/javascript/hello_react/styles/hello-react.module.sass
|
69
|
+
|
70
|
+
.helloReact
|
71
|
+
padding: 20px
|
72
|
+
font-size: 12px
|
73
|
+
```
|
74
|
+
|
75
|
+
There must also be a type definition file for these styles:
|
76
|
+
|
77
|
+
```typescript
|
78
|
+
export const helloReact: string;
|
79
|
+
```
|
80
|
+
|
81
|
+
You can then import the styles like this:
|
82
|
+
|
83
|
+
```typescript
|
84
|
+
// React component example
|
85
|
+
// app/javascripts/packs/hello_react.tsx
|
86
|
+
|
87
|
+
import React from 'react'
|
88
|
+
import helloIcon from '../hello_react/images/icon.png'
|
89
|
+
import * as styles from '../hello_react/styles/hello-react.module.sass'
|
90
|
+
|
91
|
+
const Hello = props => (
|
92
|
+
<div className={styles.helloReact}>
|
93
|
+
<img src={helloIcon} alt="hello-icon" />
|
94
|
+
<p>Hello {props.name}!</p>
|
95
|
+
</div>
|
96
|
+
)
|
97
|
+
```
|
98
|
+
|
99
|
+
You can automatically generate type definitions for the styles by installing the `typed-scss-modules` as a development dependency:
|
100
|
+
|
101
|
+
```
|
102
|
+
yarn add typed-scss-modules --dev
|
103
|
+
```
|
104
|
+
|
105
|
+
Then by adding these lines to your `package.json`:
|
106
|
+
|
107
|
+
```
|
108
|
+
"scripts": {
|
109
|
+
"gen-typings": "yarn run tsm app/javascript/**/*.sass",
|
110
|
+
"watch-typings": "yarn run tsm app/javascript/**/*.sass -w"
|
111
|
+
},
|
112
|
+
```
|
113
|
+
|
114
|
+
You can generate the typings for the stylesheet by running the command `yarn gen-typings` when you've finished writing CSS, or run `yarn watch-typings` to have it automatically generate them as you go.
|
115
|
+
|
63
116
|
|
64
117
|
## Link styles from your Rails views
|
65
118
|
|