Skip to content

Commit

Permalink
Merge pull request #39521 from rossta/patch/use-import-syntax-in-appl…
Browse files Browse the repository at this point in the history
…ication-js-template

Use ES module import syntax in application js template
  • Loading branch information
javan committed Jun 18, 2020
2 parents 661da26 + 04cbaa1 commit 664e949
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 10 deletions.
3 changes: 2 additions & 1 deletion actionview/app/assets/javascripts/README.md
Expand Up @@ -40,7 +40,8 @@ In a conventional Rails application that uses the asset pipeline, require `rails
If you're using the Webpacker gem or some other JavaScript bundler, add the following to your main JS file:

```javascript
require("@rails/ujs").start()
import Rails from "@rails/ujs"
Rails.start()
```

## How to run tests
Expand Down
3 changes: 2 additions & 1 deletion activestorage/README.md
Expand Up @@ -151,7 +151,8 @@ Active Storage, with its included JavaScript library, supports uploading directl
```
Using the npm package:
```js
require("@rails/activestorage").start()
import * as ActiveStorage from "@rails/activestorage"
ActiveStorage.start()
```
2. Annotate file inputs with the direct upload URL.

Expand Down
3 changes: 2 additions & 1 deletion guides/source/active_storage_overview.md
Expand Up @@ -578,7 +578,8 @@ directly from the client to the cloud.
Using the npm package:

```js
require("@rails/activestorage").start()
import * as ActiveStorage from "@rails/activestorage"
ActiveStorage.start()
```

2. Annotate file inputs with the direct upload URL.
Expand Down
Expand Up @@ -3,17 +3,24 @@
// a relevant structure within app/javascript and only use these pack files to reference
// that code so it'll be compiled.

require("@rails/ujs").start()
import Rails from "@rails/ujs"
<%- unless options[:skip_turbolinks] -%>
require("turbolinks").start()
import Turbolinks from "turbolinks"
<%- end -%>
<%- unless skip_active_storage? -%>
require("@rails/activestorage").start()
import * as ActiveStorage from "@rails/activestorage"
<%- end -%>
<%- unless options[:skip_action_cable] -%>
require("channels")
import "channels"
<%- end -%>

Rails.start()
<%- unless options[:skip_turbolinks] -%>
Turbolinks.start()
<%- end -%>
<%- unless skip_active_storage? -%>
ActiveStorage.start()
<%- end -%>

// Uncomment to copy all static images under ../images to the output folder and reference
// them with the image_pack_tag helper in views (e.g <%%= image_pack_tag 'rails.png' %>)
Expand Down
2 changes: 1 addition & 1 deletion railties/test/application/rake_test.rb
Expand Up @@ -157,7 +157,7 @@ class Hello
end

def test_code_statistics_sanity
assert_match "Code LOC: 29 Test LOC: 3 Code to Test Ratio: 1:0.1",
assert_match "Code LOC: 32 Test LOC: 3 Code to Test Ratio: 1:0.1",
rails("stats")
end

Expand Down
5 changes: 3 additions & 2 deletions railties/test/generators/shared_generator_tests.rb
Expand Up @@ -203,7 +203,8 @@ def test_generator_for_active_storage

unless generator_class.name == "Rails::Generators::PluginGenerator"
assert_file "#{application_path}/app/javascript/packs/application.js" do |content|
assert_match(/^require\("@rails\/activestorage"\)\.start\(\)/, content)
assert_match(/^import \* as ActiveStorage from "@rails\/activestorage"/, content)
assert_match(/^ActiveStorage.start\(\)/, content)
end
end

Expand Down Expand Up @@ -264,7 +265,7 @@ def test_generator_does_not_generate_active_storage_contents_if_skip_active_reco
assert_file "#{application_path}/config/application.rb", /#\s+require\s+["']active_storage\/engine["']/

assert_file "#{application_path}/app/javascript/packs/application.js" do |content|
assert_no_match(/^require\("@rails\/activestorage"\)\.start\(\)/, content)
assert_no_match(/activestorage/i, content)
end

assert_file "#{application_path}/config/environments/development.rb" do |content|
Expand Down

0 comments on commit 664e949

Please sign in to comment.