1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/railties/lib/rails
David Heinemeier Hansson 4838c1716a
Make Webpacker the default JavaScript compiler for Rails 6 (#33079)
* Use Webpacker by default on new apps

* Stop including coffee-rails by default

* Drop using a js_compressor by default

* Drop extra test for coffeescript inclusion by default

* Stick with skip_javascript to signify skipping webpack

* Don't install a JS runtime by default any more

* app/javascript will be the new default directory for JS

* Make it clear that this is just for configuring the default Webpack framework setup now

* Start using the Webpack tag in the default layout

* Irrelevant test

* jQuery is long gone

* Stop having asset pipeline compile default application.js

* Add rails-ujs by default to the Webpack setup

* Add Active Storage JavaScript to application.js pack by default

* Consistent quoting

* Add Turbolinks to default pack

* Add Action Cable to default pack

Need some work on how to set the global consumer that channels will
work with. @javan?

* Require all channels by default and use a separate consumer stub

* Channel generator now targets Webpack style

* Update task docs to match new generator style

* Use uniform import style

* Drop the JS assets generator

It was barely helpful as it was. It’s no longer helpful in a Webpacked
world. Sayonara!

* Add app/javascript to the stats directories

* Simpler import style

Which match the other imports.

* Address test failures from dropping JS compilation (and compression)

* webpacker-default: Modify `AssetsGeneratorTest`

Before:

```
$ bin/test test/generators/assets_generator_test.rb
Run options: --seed 46201

F

Failure:
AssetsGeneratorTest#test_assets [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/assets_generator_test.rb:12]:
Expected file "app/assets/javascripts/posts.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/assets_generator_test.rb:10

.

Finished in 0.031343s, 63.8101 runs/s, 95.7152 assertions/s.
2 runs, 3 assertions, 1 failures, 0 errors, 0 skips
```

After:

```
$ bin/test test/generators/assets_generator_test.rb
Run options: --seed 43571

..

Finished in 0.030370s, 65.8545 runs/s, 65.8545 assertions/s.
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
```

* webpacker-default: Modify `ChannelGeneratorTest`

Before:

```
$ bin/test test/generators/channel_generator_test.rb
Run options: --seed 8986

.F

Failure:
ChannelGeneratorTest#test_channel_with_multiple_actions_is_created [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:43]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:34

.F

Failure:
ChannelGeneratorTest#test_channel_is_created [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:29]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:22

E

Error:
ChannelGeneratorTest#test_cable_js_is_created_if_not_present_already:
Errno::ENOENT: No such file or directory @ apply2files - /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/fixtures/tmp/app/assets/javascripts/cable.js

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:60

F

Failure:
ChannelGeneratorTest#test_channel_suffix_is_not_duplicated [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:87]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:80

F

Failure:
ChannelGeneratorTest#test_channel_on_revoke [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:77]:
Expected file "app/assets/javascripts/cable.js" to exist, but does not

bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:68

Finished in 0.064384s, 108.7227 runs/s, 481.4861 assertions/s.
7 runs, 31 assertions, 4 failures, 1 errors, 0 skips
```

After:

```
$ bin/test test/generators/channel_generator_test.rb
Run options: --seed 44857

.......

Finished in 0.060243s, 116.1961 runs/s, 697.1764 assertions/s.
7 runs, 42 assertions, 0 failures, 0 errors, 0 skips
```

* Fix shared generator tests.

* webpacker-default: Modify `ControllerGeneratorTest`

The JS assets generator was dropped. ref. 46215b1794

* Revert "Simpler import style". It's currently failing with an error of "TypeError: undefined is not an object (evaluating '__WEBPACK_IMPORTED_MODULE_2_activestorage___default.a.start')". Waiting for @javan to have a look.

This reverts commit 5d3ebb7105.

* require webpacker in test app

* Add webpacker without making the build hang/timeout. (#33640)

* use yarn workspaces to allow for installing unreleased packages and only generate js/bootsnap when required

* no longer need to have webpacker in env templates as webpacker moved this config to yml file

* Fix rubocop violation

* Got the test passing for the running scaffold

* update expected lines of code

* update middleware tests to account for webpacker

* disable js in plugins be default to get the tests passing (#34009)

* clear codeclimate report issues

* Anything newer than currently released is good

* Use Webpacker development version during development of Rails

* Edge should get development webpacker as well

* Add changelog entry for Webpacker change
2018-09-30 22:31:21 -07:00
..
api Use Array#extract! where possible 2018-08-14 19:53:12 +03:00
application Support environment specific credentials file. (#33521) 2018-09-19 14:02:00 -07:00
command Enable Style/ParenthesesAroundCondition cop 2018-08-19 08:16:21 +09:00
commands Add Style/RedundantFreeze to remove redudant .freeze 2018-09-29 07:18:44 +00:00
console Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
engine Eager load supports individual files 2018-09-26 11:09:35 -07:00
generators Make Webpacker the default JavaScript compiler for Rails 6 (#33079) 2018-09-30 22:31:21 -07:00
plugin [Railties] require_relative => require 2017-10-21 22:48:26 +09:00
rack Log the remote IP addr of clients behind a proxy 2018-07-31 20:45:37 +05:30
railtie Clarify that config.eager_load controls eager loading [ci skip] 2017-12-30 22:37:44 +00:00
tasks Make Webpacker the default JavaScript compiler for Rails 6 (#33079) 2018-09-30 22:31:21 -07:00
templates Changes Rails Welcome image on localhost:3000 2018-06-22 15:09:53 +03:00
test_unit Change the empty block style to have space inside of the block 2018-09-25 13:19:35 -04:00
all.rb Add --skip-active-storage and do so automatically when --skip-active-record is used 2017-11-06 21:08:51 +00:00
app_loader.rb Enable Start/EndWith and RegexpMatch cops 2018-07-28 17:37:17 -04:00
app_updater.rb Don't generate yarn's contents in app:update task if it's skipped 2018-05-16 20:24:57 +09:00
application.rb Fixed to RAILS_MASTER_KEY as a default env key for decrypting. 2018-09-20 12:23:50 +02:00
application_controller.rb Always yield a CSP policy instance 2018-03-08 14:14:09 +00:00
backtrace_cleaner.rb Add Style/RedundantFreeze to remove redudant .freeze 2018-09-29 07:18:44 +00:00
cli.rb [Railties] require_relative => require 2017-10-21 22:48:26 +09:00
code_statistics.rb Enable Start/EndWith and RegexpMatch cops 2018-07-28 17:37:17 -04:00
code_statistics_calculator.rb Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
command.rb Extract Rails::Command::Spellchecker 2018-03-04 17:50:37 +02:00
commands.rb [Railties] require_relative => require 2017-10-21 22:48:26 +09:00
configuration.rb Turn on performance based cops 2018-07-23 15:37:06 -07:00
dev_caching.rb Make restart and dev:cache tasks work when customizing pid file path 2017-08-21 05:44:11 +09:00
engine.rb Routes from Engine Railties should not be an infinite loop 2018-09-26 11:10:25 -07:00
gem_version.rb Start Rails 6.0 development!!! 2018-01-30 18:51:17 -05:00
generators.rb Make Webpacker the default JavaScript compiler for Rails 6 (#33079) 2018-09-30 22:31:21 -07:00
info.rb Enable Performance/UnfreezeString cop 2018-09-23 08:56:55 +09:00
info_controller.rb [Railties] require_relative => require 2017-10-21 22:48:26 +09:00
initializable.rb Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
mailers_controller.rb Disable content security policy for mailer previews 2018-07-30 22:37:34 -07:00
paths.rb Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
rack.rb Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
railtie.rb [Railties] require_relative => require 2017-10-21 22:48:26 +09:00
ruby_version_check.rb Compare ruby version with correct way 2018-03-29 16:26:19 +09:00
secrets.rb Remove usage of strip_heredoc in the framework in favor of <<~ 2018-02-16 19:28:30 -05:00
source_annotation_extractor.rb Enable Performance/UnfreezeString cop 2018-09-23 08:56:55 +09:00
tasks.rb Make rake routes deprecate before deleting 2018-08-20 08:47:29 +09:00
test_help.rb Use testing lazy-load hooks: 2018-07-04 16:34:59 -04:00
version.rb Adding frozen_string_literal pragma to Railties. 2017-08-14 19:08:09 +02:00
welcome_controller.rb [Railties] require_relative => require 2017-10-21 22:48:26 +09:00